[cfinformatica-grup] Re: Python vs Java

  • From: "J. Moreno" <jmorep@xxxxxxxxx>
  • To: cfinformatica-grup@xxxxxxxxxxxxx
  • Date: Tue, 1 Apr 2014 21:18:10 +0200

Podria ser que juguin millor per l'àrbitre ;-)

Bromes a part, no vull generar polèmica ni molestar ningú. Només mirava de
traslladar el debat una mica a un altre terreny, si us sembla interessant.

Acabo de veure el missatge del Carles i penso, com ell, que a ASIX resulta
de molta utilitat Python, segurament més que Java.

Salutacions.


2014-04-01 21:09 GMT+02:00 Moisès Gómez <iesmoises@xxxxxxxxx>:

> Tot i estant d'acord amb la proposta del teu missatge, voldria insistir en
> que jo proposo Java FC a segon malgrat prefereixo molt més com juguen els
> Python United :P
>
>
> El dia 1 abril de 2014 20.18, J. Moreno <jmorep@xxxxxxxxx> ha escrit:
>
> Aquest fil té tota la pinta de convertir-se en una defensa del que agrada
>> a cadascú. En temes de llenguatges de programació, molt em temo que passa
>> com amb la política o el futbol. Si ets d'un equip o partit, la resta no
>> importa gaire ;-/
>>
>> Personalment, trobaria més interessant discutir sobre la concreció dels
>> conceptes i procediments que creiem que cal treballar i assolir amb
>> l'alumnat i després valorar per a cada un d'ells si un o altre llenguatge
>> s'adiu més perquè l'alumnat aprengui el concepte o el procediment.
>>
>> Els arguments de l'Enric són molt interessants, tot i que parteixen d'una
>> elecció prèvia. Si es tracta d'escollir un llenguatge com a eina per
>> treballar els conceptes i procediments de la programació de les tres
>> primeres UF del mòdul M03 (que crec que és el que es planteja), hi ha
>> alguns comentaris que em semblen molt interessants, sobretot els que fan
>> referència a l'ús de variables, tipus, classe d'emmagatzemament en memòria,
>> etc. El fet que estigui de moda o l'utilitzin a la UPC no em semblen tan
>> rellevants.
>>
>> No sé si entra el tema en aquest fil, però trobo més interessant
>> centrar-se en què volem aconseguir i no en les eines. Segurament
>> descobrirem que tenim també idees bastant diferents sobre què és més
>> important treballar ala programació de primer. :) i segur que seria
>> enriquidor posar-les en comú.
>>
>> Salutacions.
>>
>> José Moreno
>>
>>
>> 2014-04-01 20:03 GMT+02:00 Moisès Gómez <iesmoises@xxxxxxxxx>:
>>
>> Moltes gràcies Enric!
>>>
>>> Vaig introduir Python a DFSI (un crèdit de segon de l'antic ASI) i
>>> l'experiència va ser brutal. Alguns alumnes van reconèixer que gràcies al
>>> Python havien per fi entés de què anava la programació. Entre ells, uns
>>> quants van aconseguir aprovar la programació de primer!
>>>
>>> El curs passat vaig voler repetir amb programació de primer d'ASIX amb
>>> la idea de que un administrador de sistemes l'aprofitaria molt més que el
>>> C. Amb tot, discutint amb el company que fa el crèdit equivalent a DAW, em
>>> va "convèncer" de que calia C perquè després els seria més fàcil entendre
>>> altres llenguatges de notació "heretada" com ara el Java. Així que vaig
>>> intentar tots dos llenguatges i com que allò va ser massa per un
>>> percentatge important d'alumnes... vaig sacrificar Python. Crec que va ser
>>> un error i no el tornaré a cometre a menys que al centre m'obliguin
>>> d'alguna manera.
>>>
>>> En resum, la meva opinió al respecte és:
>>>
>>> * Python és el llenguatge ideal per primer
>>>
>>> * Amb les idees realment clares des de primer (sospita fonamentada en
>>> els pocs que passen així a segon), no té tanta importància quins
>>> llenguatges facin servir a segon. Penso que Java és una bona opció al M03
>>> per la seva demanda al mercat i perquè els conceptes POO estan molt
>>> documentats a llibres que per mi són de referència (ex. "Refactoring" del
>>> Fowler o "Clean Code" de l'Uncle Bob).
>>>
>>> Dit això, si haig d'expressar la meva preferència personal, jo faria
>>> Python a primer i a segon, simplement perquè m'encanta :)
>>>
>>> salut
>>>
>>>
>>> El dia 1 abril de 2014 18.25, Enric Mieza <emieza@xxxxxxxx> ha escrit:
>>>
>>> Hola a totes!
>>>>
>>>> fa un segle que vam deixar penjada la discussió de Python vs Java en el
>>>> context de POO per DAMP i DAW. Oju, que aquest email és llarg ':-)
>>>>
>>>> Vaig al gra: *jo aposto per Python* inicialment. Impartiria Java al
>>>> final de curs, un cop han madurat els conceptes bàsics.
>>>>
>>>> Si algú no ho té per mà podeu endinsar-vos amb aquest 
>>>> article<http://www.cacauet.org/wiki/index.php/Python:_introducci%C3%B3_r%C3%A0pida>
>>>> .
>>>>
>>>> Avantatges de PYTHON:
>>>>
>>>>    1. És (molt) més simple
>>>>    2. Ocupa menys codi
>>>>    3. El codi és molt més llegible: The Zen Of 
>>>> Python<http://legacy.python.org/dev/peps/pep-0020/>
>>>>    4. Quasi tot el què proves intuïtivament funciona
>>>>    5. Té tantes llibreries com Java (o al menys no he trobat a faltar
>>>>    res mai, des de web, json, etc fins a GUI, Qt, GTK, etc.)
>>>>    6. Té frameworks escalables i super potents com Pyramid, Django,
>>>>    etc.
>>>>    7. Es pot fer servir com a llenguatge de sistema (scripts, accés a
>>>>    OS, etc.)
>>>>    8. Educativament és més adequat per començar, ja que és més
>>>>    amigable pel neòfit
>>>>    9. El fan servir a la UPC com a llenguatge de programació a 1r
>>>>    (Java a 2n)
>>>>    10. Cada cop està més de moda i es demana més
>>>>    11. Permet treballar sense objectes (a 1r de CFGS)
>>>>    12. Fer llistes i altres estructures complexes és més senzill, el
>>>>    que permet avançar molt més en el 1r curs i estalviar-te els punters
>>>>    13. Pots utilitzar punters, però pots oblidar-te d'ells al principi
>>>>    de l'aprenentatge
>>>>    14. Existeix l'herència múltiple
>>>>
>>>>
>>>> Desavantatges de Python:
>>>>
>>>>    1. Tipatge dinàmic: molt pràctic però no és útil per explicar
>>>>    conceptes com polimorfisme. Tampoc em sembla important al principi de 
>>>> curs,
>>>>    ja tenen prou feina amb l'herència i els conceptes bàsics (classe,
>>>>    instància, estructures de dades).
>>>>    2. Es podria considerar "menys formal" pel tipatge dinàmic. Alguns
>>>>    podriem considerar això com un desavantatge educatiu (i m'incloc). A la
>>>>    pràctica no m'ho ha semblat.
>>>>
>>>>
>>>> Altres (ni avantatges ni desavantatges):
>>>>
>>>>    - Tots els atributs i mètodes son publics, política "Adults allowed
>>>>    here". Hi ha la convenció d'utilitzar un _underscore abans de les 
>>>> funcions
>>>>    que considerem privades.
>>>>
>>>>
>>>> Avantatges JAVA:
>>>>
>>>>    1. Molt estès i demanat encara per les empreses
>>>>    2. Estandarització de llibreries
>>>>    3. Llenguatge oficial d'Android (ja ha aparegut kivy i d'altres per
>>>>    Python per Android, tot i que encara ha de madurar)
>>>>
>>>>
>>>> Porto 2 cursos impartint els mòduls de DAW M3, M5 i M8 i ho he aplicat
>>>> a fons.
>>>>
>>>> Sobre el tipatge dinàmic deixeu-me dir que tot i que als que hem après
>>>> amb tipus estàtics (és a dir, amb declaració de variables que no canvient
>>>> de tipus) ens pot semblar que no és bo per aprendre, la realitat és que el
>>>> resultat és estupendu. Sí que podria ajudar a fixar coses al principi el
>>>> tenir tipus estàtics, però a la pràctica no ha calgut.
>>>>
>>>> Sobre el tema del polimorfisme, el paradigma és un altre. En Python un
>>>> objecte, si és verd i fa "croac", per a mi és una granota, independement de
>>>> si és fill d'una granota o no. Per tant, no hi ha polimorfisme, si vull
>>>> cridar a un mètode, miro si el té, i si el té el crido i punt. Es comenta
>>>> (i hi estic d'acord) que és més pràctic i àgil que un "enfoc formal"
>>>> d'herència estricta.
>>>>
>>>> Punters, news, mallocs i demés és tema del passat. Avui en dia hem
>>>> d'emprar llenguatges d'alt nivell com Python, i no perdre el temps amb
>>>> punters i esborrar de memòria les coses, que per això està el Garbage
>>>> Collector. Els punters son obsolets com ho és un GOTO d'Assembler.
>>>>
>>>> L'experiència docent per mi és clara: fins que no fem GUI (2n
>>>> trimestre) no maduren realment els conceptes bàsics (que son classe,
>>>> instància, atributs i mètodes). Quan han aclarit tot això i s'han cansat de
>>>> programar llistes, arrays i matrius de coses i cosetes compostes, llavors
>>>> podem entrar en polimorfisme, mètodes estàtics/atributs de classe i altres.
>>>> Explicar polimorfisme al principi només afegeix complicació innecessària.
>>>> Sóc contrari a explicar coses que no poden entendre. Sí que es fer pot (i
>>>> és necessari) a final de curs.
>>>>
>>>> Aquest any hem començat a fer servir Python a 1r de DAW/ASIX, però no
>>>> he estat jo, així que ja us comentaré més endavant què diuen els professors
>>>> i alumnes.
>>>>
>>>> Al 3r trimestre estic impartint amb Java ja que considero que:
>>>> a) estan madurs per entendre un llenguatge tan "verbose"
>>>> b) volem i cal fer programació Android
>>>>
>>>> En fi, perdoneu tanta extensió ':-)
>>>>
>>>> Espero que us sigui d'interés!
>>>>
>>>> Salut,
>>>>
>>>> Enric
>>>>
>>>>
>>>
>>
>

Other related posts: