Newsgroup: it.lavoro.informatica
Titolo: giochino: trova l'incongruenza.

http://tinyurl.com/d3fyrhe
 
 
 


Tutto questo annuncio è una incongruenza. Suggerirei all'azienda di 
cambiare pusher.
Potevano scrivere "Cerchiamo un apprendista senior ottime conoscenze di 
tutto, disponibile a lavorare quando ci pare a noi e che sappia fare un 
mega-software da solo senza fare domande."
 

 
http://tinyurl.com/d3fyrhe
 
 
Questo l'ho visto prima:
http://www.cwjobs.co.uk/JobSearch/JobDetails.aspx?JobId=53330154
 
 
In effetti, con possibili esperienze di "Ruby/Python, C/C++, Scala,
Clojure/Lisp", devo avere proprio una gran voglia/fretta di lavorare
per voi su LAMP con PHP.


"Il profilo ricercato dovrà realizzare un gestionale per l’azienda."
 
Già questa frase basta per dirgli: "Buffoni" o "Sprovveduti"
Manco sanno di che stanno parlando
 
-- 
I fatti mi cosano

 cambiare pusher.
 
 
esatto, per un software GESTIONALE AZIENDALE INTERNO cercano un'apprendista. Questa la dice lunga di quanto le aziende reputino l'informatica come semplice costo da sostenere e nulla di piu'.
 


Lavorare con PHP? Orrore... anzi...
"Cacca, cacca, caaaaaaaaaaaaaaaaccaaaaaaaaaaaaaaaaaaaaaaaa!!!" (cit.
professorino malato :)


vero, ma c'e' anche un altro punto, e cioe' che non credo abbiano
afferrato il concetto di "garbage in, garbage out"...


almeno lo farebbe per 35.000 / 45.000 sterline l'anno... non per due 
buoni pasto!


Su questo non ci piove, io infatti li contatterei se m'interessasse.

 Lavorare con PHP? Orrore...
 
Già, per fortuna il problema non mi si pone. Ieri ho visto questo
http://blog.enfranchisedmind.com/wp-content/uploads/2012/02/Diagram1.png
 
e con varie modifiche mi ci rivedo tantissimo, è una buona
approssimazione dei miei trascorsi e presente. Dimmi tu dove dovrei
trovare spazio per PHP che io faccio fatica.

 trovare spazio per PHP che io faccio fatica.
 
nel diagramma l'unica osservazione è che darei priorità di scelta al
parallelismo/concorrenza rispetto all'esigenza di una jvm/clr, se non
altro come scelta tecnica.

 trovare spazio per PHP che io faccio fatica.
 
mancano talmente tante IF in quel diagramma che vale quanto i bit
usati per scriverlo


Qualcuno mi può spiegare perché se uso F# Dio dovrebbe aver pietà della 
mia anima?

 
http://tinyurl.com/d3fyrhe
 
 
Beep... beep... beep... beep... beep... beep...
 
BEEEEPPP  :  Nessuna incongruenza rilevata
 
Conoscere bene un linguaggio è molto molto diverso da saper fare il
programmatore sopratutto in ambito manifatturiero, quindi il contratto
di apprendistato mi sembra più che corretto.
 
Non lo sarebbe stato se avessero cercato gente con esperienza ma qui
cercano diplomati o neo laureati. NEO-Laureati.
 
Il fatto che debba realizzare il gestionale aziendale non è rilevante,
non hanno detto che deve farlo da solo ( e spero per loro che lo debba
fare ) .
 
come al solito troppi commenti rancorosi.
 
 

 mia anima?
 
La Chiesa l'avra' annoverato fra i peccati mortali :)


wrote:

Semplicemente mi pare che nei commenti l'autore specificasse che odia
MSFT, quindi solo sciocchina quanto innocua ironia.


Decisamente si, oppure indicare nel diamond sulle VM che sia
un'esigenza imprescindibile (che penso poi fosse la sua idea
iniziale).
 


Non penso volesse avere carattere esaustivo quanto bilanciare certe
esigenze con preferenze e scelte che si ritengono migliori (o che lo
sono intrinsecamente, vedi concorrenza e stateless).
 
Qualche diamond che ti viene in mente?

 MSFT, quindi solo sciocchina quanto innocua ironia.
 
Ho letto i commenti, e l'autore ritiene che M$ sia "IL MALE". Non sono 
così talebano, anche se ad ogni nuova edizione di Visual Studio devo 
ricominciare a studiare tutto da capo ed il 99% di VS non mi servirà mai 
(quasi sempre usiamo C), rifare tutti i progetti vecchi...
Però F# gode di ottime recensioni (prezzolate?).
Stavo giusto pensando di impararlo, tanto per avere un qualcosa di 
"distintivo" nel curriculum.

 Però F# gode di ottime recensioni (prezzolate?).
 
Le recensioni sono relative quello che bisogna capire sono i vantaggi 
che riesci ad ottenere nell'uso di un linguaggio (e relativo ecosistema) 
rispetto al tuo contesto.
 

 "distintivo" nel curriculum.
 
Di eventuali recensioni prezzolate non mi preoccuperei comunque, F#
piace un pò a tutta la comunità funzionale direi ed è oggettivamente
un buon linguaggio, figlio di ottimi genitori. Se ti interessa restare
comunque in ambito Microsoft, io direi inizia a studiarlo da oggi
tranquillamente.


Programmazione funzionale, parallelismo, mantieni .Net, impari
indirettamente anche Ocaml (che non è legato a MS ed è molto più
diffuso in ambito lavorativo). Se poi riesci o meno ad impiegarlo solo
tu puoi saperlo.

 moderno.
 
Per sistema di build moderno intendo qualcosa che non sia nmake, non
era una critica diretta a VS.

> Qualche diamond che ti viene in mente?
 
Che tipo di applicazioni fai ?
 
 
No perché se l'obbiettivo è scrivere 1000 righe di codice puoi usare
anche il Pascal  o il List. Ma se l'obbiettivo è fare un'applicazione
i linguaggio è quasi meno importante del framework che ci sta intorno.
 
 

 per voi su LAMP con PHP.
 
Conosco le problematiche di quell'ambiente e mi sembra che stiano cercando 
un jolly che gli possa fare integrazione tra le varie tecnologie 
coinvolte, valutare i vari pezzi, e/o metterci le mani quando serve. O 
meglio, sapere a chi chiedere di metterci le mani e per fare cosa.
In quell'area esiste una marmellata di elementi che vanno fatti dialogare 
e che sono sviluppati con varie tecniche da tanti attori. L'alternativa è 
piegarsi al monopolio di Nuance. Probabilmente la conoscenza di LAMP è 
richiesta solo perché alla fine va in produzione con quello come 
front-end.
 
-- 
Sans
 
 


wrote:

Ci sarebbe anche Clojure: 
https://github.com/clojure/clojure-clr
 
 
  ngw


Confesso che Clojure non lo conoscevo prima di questo thread. Sono 
andato a vedere, e sembra interessante.
 
Faccio un giro e mi documento...

 i linguaggio è quasi meno importante del framework che ci sta intorno.
 
(presumo "List" sia un typo per "Lisp", non trovando riferimenti per
tale eventuale linguaggio)
 
E questo cos'è, un tentativo di trolling mal riuscito?


wrote:

Due note pratiche. La qualità di Clojure e la ottima direzione che sta
prendendo non sono in discussione, ma se sei in ambito Microsoft/.Net
come mi pare di aver capito concentrati su F# senza ombra di dubbio
perchè:
- con F# hai da subito un certo mercato a disposizione al quale
rivolgerti, ed in questo la compatibilità con Ocaml gioca a tuo
favore.
- hai la possibilità di proporlo per compiti specifici ed integrarlo
praticamente a costo zero nel tuo ambiente Microsoft-oriented da
subito - e hai più chances di essere ascoltato (anche da chi è duro di
comprendonio) con qualcosa prodotto da MS che non proponendo qualcosa
proveniente dall'esterno.
 
nota a margine: F# (Ocaml) è un derivato della famiglia ML, Clojure è
di fatto un Lisp. Le differenze sono notevoli e meriterebbero (ML e
Lisp) di essere studiati entrambi tempo permettendo.
La mia esperienza personale mi dice che è più facile far avvicinare un
programmatore abituato al paradigma imperativo (sia procedurale che
OO) ad un linguaggio della famiglia ML che non ad un Lisp, ma questo è
solo una mia osservazione e alla fine conta poco riguardo le reali
possibilità di successo nell'apprenderli.


Presumo che la persona cercata si occuperà del solo front-end, e mi
stupirei se usassero PHP anche per altro. Del resto la stessa azienda
ha anche questi altri annunci:
 
http://www.cwjobs.co.uk/JobSeeking/Senior-DeveloperSoftware-Engineer---Hemel-Hempstead_job53330269
 
http://www.cwjobs.co.uk/JobSeeking/Senior-Developer--Software-Engineer--Hemel-Hempstead---40k---50k_job53330347
 

 E questo cos'è, un tentativo di trolling mal riuscito?
 
no, è che il diamond che avrei messo era "che applicazioni fai". Non
era diretta a te ma sono contento che tu abbia risposto. Il tipo di
codice che scrivi tu ben si adatta a diagramma che hai postato.
 
Nel contempo il diagramma pecca proprio in questo, non chiede che
applicazione fai. Esempio estremo, se fai applicazioni mobili quel
diagramma è da face palm.
 
 

 diagramma è da face palm.
 
Si, e non è nemmeno tanto estremo come esempio. Ho usato Java per
Android, ma giusto per la cronaca il lavoro su Clojure che ha come
target Android è avanzato molto dall'anno scorso (in cui lo startup
era un pò lento e l'uso della memoria con picchi eccessivi, ora mi
dicono meglio ma non saprei quanto quindi non conta comunque) e
quest'estate sarà fatto parecchio al riguardo ed oltre[*]. Questo
giusto per dire che ci sono tantissime cose in movimento - se si ha
interesse non è mai troppo presto.
 
La domanda se trollavi poi, era riferita alle "1000 righe" di Lisp:
perdona, ma è così tipico dei trolls fare certe affermazioni che
scatta automaticamente l'allarme anche quando magari non è il caso.
Anche riguardo Pascal, se pensi a Delphi di Borland non è proprio il
caso di parlare di 1000 righe. Ne sono stati scritti di software
commerciali in Delphi, e con grande produttività e qualità: il fatto
che abbia inevitabilmente perso la battaglia con i grandi nomi
supportati dai big del settore e sia caduto in disuso non ne fa di
certo un linguaggio da disprezzare.
 
[*] 
http://dev.clojure.org/display/community/Google+Summer+of+Code+2012
 

 perdona, ma è così tipico dei trolls fare certe affermazioni che
 
no, l'affermazione era che se il software da scrivere è piccolo, è un
modulo, un pezzettino, la scelta del linguaggio è importante e
significativa. Se devi scrivere un'applicazione la scelta è forzata
dalla piattaforma non dal linguaggio.
 
PS: F# è tanto bello, ma se fai applicazioni gestionali semplici è
solo più complicato da insegnare ad un junior e non aggiunge niente di
niente a c# ne perfino a VB.
 
 
 

Le agenzie interinali (tutte quante) non hanno le più minime
competenze tecniche per selezionare, lo si capisce anche dai loro
annunci ridicoli. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 niente a c# ne perfino a VB.
 
Però converrai con me che, molto più spesso di quello che può
sembrare, è una questione di persone e non di tecnologie. Quando
Delphi era all'apice della diffusione, diverse persone scrivevano
applicazioni di successo (tra cui molti gestionali, che io ricordi)
con discrete soddisfazioni economiche e personali al seguito, e
avevano scelto di abbandonare proprio VB e affini alla ricerca di
qualcosa che li facesse lavorare "meglio" secondo i loro personali (ma
talvolta più che oggettivi) criteri (e perchè no, li slegasse da MS,
abbassase certi costi che incontravano, etc.). Dico questo perchè
troppo spesso ci si limita da soli per pigrizia e... vabbè il discorso
con cui avrò già rotto a sufficienza fin'ora.
 
Alla fine del discorso, se l'ambito di interesse (es. gestionali) è
uno soltanto e non si pensa di cambiare, è logico che ci si può anche
"limitare" (non in senso dispregiativo sia chiaro) nelle conoscenze
senza subire danni. Di quel diagramma mi piaceva il fatto che chi lo
scrive dichiara indirettamente "a me piace questo e quello, e sono io
a scegliere a cosa e come lavorare" e trovo che sia un atteggiamento
che manca a molti nel settore, soprattutto in Italia. Tutto qui, non
era certo una roadmap forzata per tutti.

 a c# ne perfino a VB.
 
direi che, per definizione, nessun linguaggio del clr può aggiungere o 
togliere qualcosa all'altro in termini di funzionalità.
quanto alla didattica... bah ho svariati dubbi su quello che dici. spesso 
si confonde la diffusione di un linguaggio con la facilità di 
apprendimento o si da per scontato che una sia conseguenza dell'altra. 
chiaro dipende dal background ma posto che un junior di solito non ne ha 
uno rilevante direi che per lui un multiparadigma è tendenzialmente più 
facile.
 

 facile.
 
Dissento, un imperativo è più facile. Ed è un motivo per chi si sono
diffusi di più dagli anni 60 ad oggi.

 senza subire danni.
 
io vado dove mi porta il mercato... e non il contrario. Potessi avere
tariffe simili con altri tipi di software lo fare. E poi comunque
quando li lavora con le web application c'è già il javascript, l'html,
i vari framework griglie e grigliette, la stessa MS che rilascia nuove
versioni ogni 2 anni, poi il DB nuovo da studiare che anche quello
fermo non sta... ti assicuro il che il problema del linguaggio non è
molto sentito, alla fine io scrivo dello scripting ed assemblo
componenti complesse lato client e lato server. Lo sentirei se dovessi
scrivere un componente, ma non mi pagano per quello e non saprei come
farmi pagare a da chi quindi i discorsi stanno a zero. F#, bello, ma
per me per adesso è solo una moda.
 
 
 
 
 


allora dissenti da te stesso perché ne c# ne vbnet permettono la 
programmazione imperativa mentre f# si.
 

 certo un linguaggio da disprezzare.
 
Delphi non è affatto morto, anzi. Certo è meno diffuso dei linguaggi
MS, ed inoltre è anch'esso vincolato a Windows. Tuttavia esiste anche
in versione per Net, quindi diventa "esportabile" su Mono. Inoltre
esiste il clone opensource Lazarus+Freepascal, che tra l'altro si sta
"allargando" anche ad Android.
Personalmente ho programmato in Pascal anche dei microcontroller
(MikroPascal).

 programmazione imperativa mentre f# si.
 
illustra il concetto che sono curioso.
 


volentieri anche se non sarebbe il mio concetto quello da illustrare.
 
tu hai scritto:
 
"F# è tanto bello, ma se fai applicazioni gestionali semplici è
solo più complicato da insegnare ad un junior e non aggiunge niente di
niente a c# ne perfino a VB."
 
dopodiché hai scritto:
 
"Dissento, un imperativo è più facile"
 
siccome f# permette di programmare in modo imperativo le tue
affermazioni sono in contrasto l'una con l'altra.
tutto qua.
 

 tutto qua.
 
Dove vedi il contrasto ? Il fatto che f# permetta l'imperativo non ne
fa un linguaggio imperativo, ne fa un linguaggio Multiparadigma dove è
anche possibile la programmazione l'imperativa.
 
 
 
ma a  parte quello...  volevo capire perché dici che :


 ne c# ne vbnet permettono la programmazione imperativa
 
lo dico perché non mi risulta implementino questo paradigma.
 
rispondo in anticipo alla successiva confutazione: no, non considero
la possibilità di scrivere tutte funzioni static una implementazione
del paradigma di programmazione imperativa... :P
 
 

 per me per adesso è solo una moda.
 
In teoria potrebbe darsi che con F# il lavoro di assemblaggio ne
verrebbe semplificato.
In pratica ho visto che già, per esempio, l'integrazione con
WindowsForms per scrivere GUI è estremamente macchinosa, tanto che si
consiglia di scrivere una DLL in C# o VB e richiamare quella...
A questo punto ho pochi dubbi che questa macchinosità di integrazione
di F# con Net esista anche nella parte delle classi web.

 di F# con Net esista anche nella parte delle classi web.
 
Non saprei, prima accennavo a perplessità perchè 
asp.net
 è un mondo a
parte rispetto a quello per cui F# è stato introdotto. L'obiettivo di
F# non è quello di "assemblare componenti" nel web, ma alzare la
barriera in ambiti come le applicazioni applicazioni analitiche,
simulative, il calcolo parallelo. E' alla task parallel library a cui
pensare quando parli di F#, al fatto che programmare (in senso più
propriamente "algoritmico" e non di semplice "collante" di oggetti e
soluzioni) è meno error-prone, più sintetico ed espressivo.
 
Tutta la discussione in questo(i) thread(s), per me, verteva
sull'invito a guardarsi intorno, al non fare l'enorme error di
considerare "mode" quello che è oggi *una necessità* per progredire (e
per trovare qualche lavoro più soddisfacente, visto che ci si
lamentava e si parlava anche di questo alla fine). Ora che so più
precisamente di cosa si occupa Equinozio, non mi sogno nemmeno di
dirgli di sperimentare altro in quel campo. L'invito era un altro, ci
tenevo a precisare.

 del paradigma di programmazione imperativa... :P
 
A me risulta che i linguaggi possono essere funzionali, imperativi o
logici. Non ne conosco altri.
 
E si, mi risulta che in c# e 
vb.net
 puoi scrivere anche con il
paradigma imperativo (che è diverso da dire che la sintassi è
imperativa come intendo magari sbagliando io)
 
In vb puoi usare addirittura i moduli senza usare classi esposte.
Ovvero una sub main dentro un modulo (non una classe), variabili
globali e via andare. E' il paradigma imperativo puro.
 
In c# no, devi avere una classe al minimo,  ma questa è senza dubbio
una sintassi imperativa incapsulata dentro una classe :
 
 
 
using System;
class SwitchTest
{
    static void Main()
    {
        Console.WriteLine("Coffee sizes: 1=Small 2=Medium 3=Large");
        Console.Write("Please enter your selection: ");
        string s = Console.ReadLine();
        int n = int.Parse(s);
        int cost = 0;
        switch (n)
        {
            case 1:
                cost += 25;
                break;
            case 2:
                cost += 25;
                goto case 1;
            case 3:
                cost += 50;
                goto case 1;
            default:
                Console.WriteLine("Invalid selection.");
                break;
        }
        if (cost != 0)
        {
            Console.WriteLine("Please insert {0} cents.", cost);
        }
        Console.WriteLine("Thank you for your business.");
    }
}
 
sicuro non è una sintassi funzionale !
 
 
moh, o io non so cosa sia un linguaggio imperativo (e ci stà eh !)
oppure non capisco.
 

 verrebbe semplificato.
 
Potrebbe darsi... potrebbe darsi anche che il codice poi non lo legge
più neppure un mago quando chi lo ha scritto se ne è andato...
 
E poi in c# e vb ci sono miliardi di esempi, su un nuovo linguaggio ci
passi se serve a qualcosa... e quanto mai potrà essere vantaggioso ???
Cioè fatto 100 il progetto quanto tempo/errori risparmio usando f# ??
Anche ammesso di avere tutto il legacy in f#, trovare tutti gli esempi
e i pezzetti di codice in giro come fosse c# e conoscendolo
perfettamente quanto potrò risparmiare tempo eliminare gli errori ?
Per me Il 5% sarebbe un miracolo.
 
Per me i programmi non dipendono dal linguaggio in cui sono scritti.
 
 
 
 

 F#, bello, ma per me per adesso è solo una moda.
 
E secondo te Microsoft avrebbe impiegato alcuni dei suoi migliori
stipendiati al research centre su Haskell e F# per anni non perchè si
sta cercando di progredire e abbattere le barriere che frenano da
tempo il computing, ma per *moda*?
 
Mah.

 Mah.
 
Beh si, adesso vanno di moda i linguaggi non dichiari il tipo della
variabile e lei non aveva niente da proporre sul mercato.
 
Ecco F#.
 
è marketing.

 Per me i programmi non dipendono dal linguaggio in cui sono scritti.
 
Sempre nell'ottica dell'assemblaggio, si. Altrove, dipendono *anche*
dal linguaggio, tra le tante cose.


Non ditemi nulla ma mi pare abbiate spostato la discussione un filo
sullo scontro personale.

 dal linguaggio, tra le tante cose.
 
Certo, da cose come la gestione degli errori o la qualità del
compilatore. Ma dipende pochissimo dalla sintassi del linguaggio
stesso. E tra l'altro all'interno di .net uno vale l'altro, quel che
fai con uno fai con l'altro.
 


Capito. Non sai di cosa parli.


Questo mi interessa molto. Non c'è alcuno studio che dimostri la cosa,
e neppure il contrario a voler essere precisi. Di tutti gli studi
empirici significativi al riguardo (li ho letti praticamente tutti, e
continuo man mano che escono), l'unica cosa che si evince è la
difficoltà ad inquadrare l'efficacia dell'apprendimento, qualunque
siano le metriche adottate (defect rates, etc.).
 
L'unica evidenza al riguardo semmai è il successo nell'impiego della
programmazione dichiarativa(funzionale) nel primo/nei primissimi corsi
universitari di Computer Science in svariate università del mondo (e
negli ultimissimi anni come ovvio che sia, il numero sta salendo). In
Italia ad esempio, Pisa (prima Ocaml e poi C in Programmazione I) e
altre facoltà di cui ora non ricordo. Oltre a questo, stanno
aumentando i corsi di CS1 in cui si insegna in "multi-language", di
cui tipicamente/possibilmente uno per paradigma (se interessa, ho
riferimenti più precisi) ed è una cosa che ritengo veramente
importante.
Direi quindi che la questione "è più facile" resta come sempre poco
più che un parere personale, quello che conta come sempre sono buone
fonti a disposizione e buoni insegnanti.
 
Detto questo, quali sono le tue esperienze di programmazione
dichiarativa/funzionale? Quale linguaggio usi e perchè riscontri sia
più difficile insegnarlo (per la precisione, insegnare a chi: il
neofita totale o il programmatore provetto?) rispetto ad altro?.
 
p.s. Non ho una laurea in Computer Science e non faccio "ricerca"
intesa all'italiana come parcheggio a tempo determinato o
indeterminato che sia. Sono da sempre nell'industry e il mio interesse
per la didattica in CS è del tutto personale e finalizzato al
miglioramento dell'industry stessa.

 Capito. Non sai di cosa parli.
 
ok, vedremo tra qualche anno quanto è cambiato il mondo con F#.
 
Ma io spero di sbagliarmi eh... sia ben chiaro.
 
 
 

 neofita totale o il programmatore provetto?) rispetto ad altro?.
 
Prima di tutto devi considerare che io mi chiamo EquiNozio perché come
dice uno bravo sono equamente distante da tutte le competenze e quindi
sommamente ignorante. E che la cosa mi sta bene, quindi quando ragioni
con me ragioni con uno che taglia un po' con l'accetta, anche se
scrivo software da un bel po' di anni.
 
Detto questo, apro un 3d nuovo che ci siamo discostati troppo dal
topic in questo
 

 (MikroPascal).
 
Si, ed infatti non solo in quello ma è stato usato anche per
compilatori ed altro, ma io non c'ero e questo me lo sono solo fatto
raccontare.

 sullo scontro personale.
 
sul filo di lana caprina, l'ammetto colpa mia.
 
 


No guarda, non mi riferivo alle previsioni - di quelle non so che
farmene. E' che parli di type inference come di dynamic typing, e
certi argomenti non si possono affrontare con pressapochismo.

 E tra l'altro all'interno di .net uno vale l'altro, quel che fai con uno fai con l'altro.
 
Sempre se ti riferisci a compiti semplici o supportati in eugual modo
dai vari linguaggi.Il fatto che tu non trovi e veda i limiti di uno
strumento, non significa che questi non ne abbia.


Vai t'ho risposto :)