Razboaie teoretice
#19
Posted 26 November 2014 - 01:20
wirespot, on 26 noiembrie 2014 - 00:39, said:
Unii oameni, când dau de-un concept nou, îşi spun "acum nu înţeleg dar poate voi înţelege cândva şi-mi va folosi la ceva". Alţii zic "nu înţeleg deci e clar o prostie care nu-mi va folosi niciodată". TS030, on 26 noiembrie 2014 - 00:46, said:
Nu subestima importanta curiozitatii TS030, on 26 noiembrie 2014 - 00:46, said:
Studiul limbajelor functionale te ajuta sa intelegi mai bine anumite lucruri si concepte care deseori se regasesc si-n limbajele imperative, si chiar concepte specifice limbajelor imperative. Sunt dintre cei ce considera ca limbajele functionale reprezinta o nisa, si nu pot indeplini promisiunile suporterilor infocati; si ca o tentativa de-a defini un limbaj "perfect" este pierdere de timp. Si totusi... TS030, on 26 noiembrie 2014 - 00:46, said:
Hmm... dau lucrare de control? Edited by MrReason, 26 November 2014 - 01:22. |
#20
Posted 26 November 2014 - 01:50
Un exemplu rapid? Se poate porni de la "mutable" vs. "immutable", si se poate ajunge foarte departe
Bun, si de ce ma grupezi cu "cei mai infocati adepti ai limbajelor functionale"? Vrei sa demonstrezi ca un non-adept intelege lucruri pe care ei nu le stiu sau cum? |
#21
Posted 26 November 2014 - 02:32
TS030, on 26 noiembrie 2014 - 01:50, said:
Un exemplu rapid? Se poate porni de la "mutable" vs. "immutable", si se poate ajunge foarte departe Constantele sunt inxistente sa zicem in C? E vreun "feature" exotic? TS030, on 26 noiembrie 2014 - 01:50, said:
Bun, si de ce ma grupezi cu "cei mai infocati adepti ai limbajelor functionale"? Vrei sa demonstrezi ca un non-adept intelege lucruri pe care ei nu le stiu sau cum? |
#23
Posted 26 November 2014 - 10:37
MrReason, am impresia ca tu vrei sa-mi cauti nod in papura, nu sa discuti... pentru c-am sfatuit oamenii sa invete?
La prima intrebare, incearca sa-ti raspunzi singur. Iar la a doua, raspund cu o alta intrebare: poti scrie functii fara side effects in C? Mai mult n-are rost. OriginalCopy - arunca o privire la avatarul lui MrReason |
#24
Posted 26 November 2014 - 12:24
TS030, on 26 noiembrie 2014 - 10:37, said:
La prima intrebare, incearca sa-ti raspunzi singur. TS030, on 26 noiembrie 2014 - 10:37, said:
Iar la a doua, raspund cu o alta intrebare: poti scrie functii fara side effects in C? Mai mult n-are rost. int doubleMe(const int nr) { return nr * 2; } * actually, const-ul ala nici nu e necesar, poate doar pt. obsedati la nivel teoretic Tu ce zici, are "side effects"? Suspiciunea mea ca nu stii nici ce-s alea. Si prin extensie nici de ce ar fi de dorit sau de nedorit. |
#25
Posted 26 November 2014 - 13:14
Vai, ce mare descoperire ai facut - stii ce-i aceea o intrebare retorica?
Si cu asta am incheiat discutia, am lucruri mai bune de facut decat sa ma cert cu copii pusi pe harta (vorba lui OriginalCopy). Edited by TS030, 26 November 2014 - 13:15. |
#26
Posted 26 November 2014 - 19:08
MrReason, on 25 noiembrie 2014 - 21:49, said:
Iar faptul ca facebook (care nu-i chiar firma de apartament) nu a gasit porgramatori "buni", nu spune nimic despre "calitatile" limbajului? TS030, on 25 noiembrie 2014 - 23:34, said:
Apropo de interes academic, nu am studiat asa ceva in facultate, si e pacat; lucru pe care l-am realizat mai tarziu. Consider ca orice programator care se respecta trebuie sa urmeze vreun curs-doua de limbaje functionale, chiar daca nu exista nici o perspectiva de a le folosi in productie (si cu atat mai mult daca exista aceasta perspectiva!). Curiozitatea constanta este o calitate de nepretuit. MrReason, on 26 noiembrie 2014 - 01:20, said:
Si totusi... vino cu un exemplu concret. Cutare "concept" din limbajul functional x, te ajuta sa intelegi conceptul cutare din limbajul oop y. |
#27
Posted 26 November 2014 - 19:18
Clau_UK, on 26 noiembrie 2014 - 18:42, said:
:-D credeam ca e limbaj pentru ca am citit paragraful asta de mai jos, se pare ca doar .NET se numeste limbajul in sine, corect? "ASP.NET is built on the Common Language Runtime (CLR), allowing programmers to write ASP.NET code using any supported .NET language. The ASP.NET SOAP extension framework allows ASP.NET components to process SOAP messages." .Net e o "platforma" care suporta mai multe limbaje, printre care C# si VB.Net iar ASP.Net este un framework web al acesteli platforme, iar limbajele care pot fi folosite sunt evident C# si VB.Net. Ai sa vezi ca in general cartile care trateaza ASP.Net, ofera de obicei codul in C# sau VB.Net sau chiar amandoua. m3th0dman, on 26 noiembrie 2014 - 19:08, said:
Din moment ce s-au realizat proiecte impresionante în limbajul respectiv nu cred că e o problemă cu limbajul în sine. m3th0dman, on 26 noiembrie 2014 - 19:08, said:
Closures din orice limbaj funcţional te fac să înţelegi lambda expressions şi method references din Java (şi conceptul general de anonymous function prezent cam în orice limbaj modern). Sau funcţiile tipice din orice limbaj funcţional (fold, map de exemplu) te ajută să înţelegi Hadoop sau Stream API din Java. Doi. Nu, nu te ajuta nici macar asta. Mai bine inveti ce ai de invatat direct in limbajul in care s-a implementat o anumita chestie. In toata povestea cu aspectele functionale importante de java/c# & co e vorba doar de sytantic sugar (care in opinia mea putea fi implementata mult mai bine si mult mai clar cu alt tip de sintaxa). |
#28
Posted 26 November 2014 - 20:22
MrReason, on 26 noiembrie 2014 - 19:18, said:
Proiectele sunt foarte de nisa iar mie nu mi se par impresionante. Sunt tot felul de sisteme maruntele de varietati de servere, insa fara a fi prea complicate. MrReason, on 26 noiembrie 2014 - 19:18, said:
Nu. Eu vorbeam de cum anume de ajuta aspectele fundamentale ale unui limbaj functional sa intelegi conceptele fundamentale ale unui limbaj oop. Nu chestiile functionale imprumutate in limbajele oop. Doi. Nu, nu te ajuta nici macar asta. Mai bine inveti ce ai de invatat direct in limbajul in care s-a implementat o anumita chestie. In toata povestea cu aspectele functionale importante de java/c# & co e vorba doar de sytantic sugar (care in opinia mea putea fi implementata mult mai bine si mult mai clar cu alt tip de sintaxa). Aici e discutabil; eu sunt de părere că până nu înţelegi fundamental perspectiva funcţională nu vei înţelege clar Stream API. Iar într-un limbaj funcţional eşti obligat să foloseşti doar asta. Cât despre doar syntactic sugar - e ceva mai mult de atât. Cu streams, e un alt mod de a programa, mai mult declarativ decât imperativ... Edited by m3th0dman, 26 November 2014 - 20:25. |
|
#29
Posted 27 November 2014 - 14:27
Eu cred ca intrebarea e pusa prost. Toate limbajele au un scop si sunt recomandate la ceva, si acel ceva incepe de la distractice (chestii ezoterice precum brainf**k sau chicken) pana la chestii serioase unde depinde de aplicatie. Si cum daca ai facut treaba buna cand a trebuit, un limbaj nou il inveti destul de repede, e chiar irelevant ce limbaje ar trebui sa stii, ci ce concepte ar trebui sa stii. Si ca invatacel te intereseaza sa iti alegi un limbaj care sa te lase sa aplici conceptele alea.
Pe de alta parte, in procesul de invatare limbajul e fix cea mai mica problema. Poti invata programare in C la fel de bine cum poti invata in Java si la fel de bine cum poti invata in Python, daca cel ce iti explica e destul de inteligent sa stie cum si ce sa iti povesteasca. Si mi se pare semi-lipsit de sens sa discuti despre ce se foloseste inainte sa fi invatat ceva. Tocmai din motivul de sus. Daca inveti ceva, si daca o faci bine, poti sa te adaptezi la nevoile industriei destul de usor. Caci, momentan te intereseaza sa inveti. Si joburi in C/C++ sunt cu duiumul (zice cineva care isi cauta job prin zona asta si se pare ca are de unde alege). Deci, chiar e irelevant cu ce incepi, atat timp cat incepi cu dreptul. |
#30
Posted 03 December 2014 - 17:07
m3th0dman, on 26 noiembrie 2014 - 20:22, said:
Bază de date, message queue broker, platformă de tranzacţii financiare, sistem de telecomunicaţii, librărie 3D, server - cam variată nişa şi nu mi se par totuşi proiecte triviale. Trivial ar fi fost o aplicaţie iOS sau un site web simplu. message queue broker - conexiuni, conexiuni? platforma de tranzactionare - iarasi conexiuni? sistem telecom - clar conexiuni liberarie 3d - what? post sa vad si eu o animatie 3d facuta in erlang? server - ghici iarasi ce? m3th0dman, on 26 noiembrie 2014 - 20:22, said:
Tocmai am spus de closures şi de map/fold care sunt concepte fundamentale atât în orice limbaj funcţional precum lambda expressions şi Stream API sunt concepte fundamentale în Java. m3th0dman, on 26 noiembrie 2014 - 20:22, said:
Aici e discutabil; eu sunt de părere că până nu înţelegi fundamental perspectiva funcţională nu vei înţelege clar Stream API. Iar într-un limbaj funcţional eşti obligat să foloseşti doar asta. Cât despre doar syntactic sugar - e ceva mai mult de atât. Cu streams, e un alt mod de a programa, mai mult declarativ decât imperativ... Si chiar nu vad necesitatea FP pt. a intelege Stream API. Ca nu face vreo chestie exotica, ci doar parcurge niste chestii pe care opereaza (filtrare, aplicare functii, etc.). Edited by MrReason, 03 December 2014 - 17:12. |
#31
Posted 03 December 2014 - 19:12
Reaminteşte-mi te rog ce profil avea facultatea pe care ai urmat-o.
|
#33
Posted 03 December 2014 - 19:50
@MrReason
ai terminat sau acum esti student? nu te intreb la misto, chiar vreau sa stiu. (eu sunt stundent) |
|
#34
Posted 03 December 2014 - 20:05
@MrReason: am întrebat pentru că ultimul post a fost un monument de ignoranţă. Bine, nu doar ultimul, dar când ai întrebat dacă programarea declarativă "e pe bune" a fost prea mult.
Te rog să realizezi că nu se poate discuta în condiţiile astea. Îţi lipsesc noţiuni elementare de CS (de asta eram curios ce facultate de profil te-a lăsat să promovezi). Nu ar fi o problemă dacă ai fi dispus să înveţi, dar nu eşti. Ţi-ai format nişte idei despre un colţ mic al domeniului şi refuzi sistematic orice noţiune străină. Colac peste pupăză, o faci la un mod agresiv. Nu are niciun rost dialogul în condiţiile astea. Aşa că eu de acum încolo te voi ignora. |
#35
Posted 03 December 2014 - 20:45
MrReason, on 03 decembrie 2014 - 17:07, said:
baza de date - conexiuni cumva? message queue broker - conexiuni, conexiuni? platforma de tranzactionare - iarasi conexiuni? sistem telecom - clar conexiuni liberarie 3d - what? post sa vad si eu o animatie 3d facuta in erlang? server - ghici iarasi ce? MrReason, on 03 decembrie 2014 - 17:07, said:
Io am avut impresia ca m-am exprimat clar, dar m-am inselat. Lambda expressions si Stream API nu sunt concepte fundamentale in Java ci niste chestii noi pe care multi nu o sa le foloseasca in curand(multi inca folosesc j2ee). Cam asta ziceau programatorii mai leneşi un pic şi în urmă cu 10 ani când au apărut Generics şi Annotations, că nu o să le folosească. Toate librăriile de bază vor folosi streams şi lambdas şi drept urmare toţi programatorii Java le vor folosi fie că vor ei sau nu (sau se vor apuca să reimplementeze librării de bază sau să foloseacă versiuni vechi ce nu mai sunt maintained). Cât despre J2EE mulţi nu folosesc fiindcă e obsolete (e JEE de vreo 7-8 ani); oricum majoritatea folosesc Spring care e superior. MrReason, on 03 decembrie 2014 - 17:07, said:
Iar eu nu la astea ma refeream, nici macar la Java, ci la fundamentele OOP. Caci dupa teoria unora, FP te face mai bun in OOP. Cum? Cât despre fundamentele OOP citeşte un pic despre începuturi şi la ce se referea exact Alan Kay când s-a gândit la OOP şi ce-a ieşit în limbajele mainstream OOP. La ce ajută FP e faptul că te face mai atent la shared mutability ceea ce e foarte important dacă scrii cod multi-threaded. Plus altă perspectivă e de a programa de care vorbeam mai jos. MrReason, on 03 decembrie 2014 - 17:07, said:
Alt mod de a programa? Chiar exista modul ala "declarativ"? Ca mie mi se pare doar un alt termen gogonat inventat de aia cu prea mult timp liber, dar care nu face referire la nimic fundamental diferit. Si chiar nu vad necesitatea FP pt. a intelege Stream API. Ca nu face vreo chestie exotica, ci doar parcurge niste chestii pe care opereaza (filtrare, aplicare functii, etc.). Aceeaşi chestie şi în Java; poţi scrie o grămadă de for-uri şi if-uri unul într-altul sau poţi folosi simplu Streams. Nici măcar nu e vorba de OOP aici deoarece acestea sunt la un nivel de abstractizare mai înalt. Edited by m3th0dman, 03 December 2014 - 20:47. |
#36
Posted 03 December 2014 - 20:53
wirespot, on 03 decembrie 2014 - 20:05, said:
@MrReason: am întrebat pentru că ultimul post a fost un monument de ignoranţă. Bine, nu doar ultimul, dar când ai întrebat dacă programarea declarativă "e pe bune" a fost prea mult. Te rog să realizezi că nu se poate discuta în condiţiile astea. Îţi lipsesc noţiuni elementare de CS (de asta eram curios ce facultate de profil te-a lăsat să promovezi). Nu ar fi o problemă dacă ai fi dispus să înveţi, dar nu eşti. Ţi-ai format nişte idei despre un colţ mic al domeniului şi refuzi sistematic orice noţiune străină. Colac peste pupăză, o faci la un mod agresiv. Exemplul clasic e SQL. Cica e "limbaj declarativ". Adica cica ii spui doar ce sa faca, insa nu si cum. Cica nu exista pasi. Cica. Insa giumbuslucuri din astea poti incerca cel mult cu chestii gen Wolfram Alpha. |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users