Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Garantie apartament dezvoltator

Aplicație GPS cu zoom automa...

Ipad Pro & Air 2024

Service si revizii reprezentanta
 Ati returnat produse pe aliexpres...

Certificate de nastere digitale

Fitbit sau huawei band ?

Tatuator handpoke
 Plaja de nudisti in Grecia?

Mufa microusb a telefonului mobil...

"Ciudatenii" control pasa...

Impamantare
 Apple maps pe Windows 10

Sfarsitul woke-ismului si al core...

Probleme fibra (internet ) rooter...

Renovare completa + pompa de cald...
 

Razboaie teoretice

- - - - -
  • Please log in to reply
43 replies to this topic

#19
MrReason

MrReason

    Senior Member

  • Grup: Senior Members
  • Posts: 9,266
  • Înscris: 08.10.2010

View Postwirespot, 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ă".
E bine ca mentionezi astfel de idei filozofice, dar te asigur ca nu ma aflu in nici una din cele doua categorii.

View PostTS030, on 26 noiembrie 2014 - 00:46, said:

Nu subestima importanta curiozitatii Posted Image
Nici vorba. Am pretentia ca sunt bine documentat, am invatat suficient cat sa-mi fac o idee cred eu decenta (si haskell si lisp) si am avut nenumarate discutii cu adeptii acestor limbaje,  insa mereu s-a ajuns in puncte moarte si la comportamente de oameni frustrati din partea lor (ca o paranteza, nu am mai vazut atata prostie, fanatism, ura si false impresii de inteligenta, in nici un subdomeniu IT).

View PostTS030, 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...
Si totusi... vino cu un exemplu concret. Cutare "concept" din limbajul functional x, te ajuta sa intelegi conceptul cutare din limbajul oop y.

View PostTS030, on 26 noiembrie 2014 - 00:46, said:

Hmm... dau lucrare de control? Posted Image
Nu, eram doar curios. Nu de alta, dar si cei mai infocati adepti ai limbajelor functionale o dau in nenumarate balbe cand sunt intrebati diverse. De fapt ei sunt extrem de confuzi daca sunt luati la bani mai "marunti".

Edited by MrReason, 26 November 2014 - 01:22.


#20
TS030

TS030

    Guru Member

  • Grup: Senior Members
  • Posts: 15,193
  • Înscris: 25.06.2012
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
MrReason

MrReason

    Senior Member

  • Grup: Senior Members
  • Posts: 9,266
  • Înscris: 08.10.2010

View PostTS030, on 26 noiembrie 2014 - 01:50, said:

Un exemplu rapid? Se poate porni de la "mutable" vs. "immutable", si se poate ajunge foarte departe Posted Image
Da de ce? E asta o caracteristica fundamentala a limbajelor functionale?

Constantele sunt inxistente sa zicem in C? E vreun "feature" exotic?

View PostTS030, 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?
Dar nu te grupez. Ideea e ca iti poti lejer face impresii gresite "din auzite", dat fiind ca multi "esperti" nu inteleg nici ei prea bine despre ce vorbesc.

#22
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Atati copii pe acest topic...

#23
TS030

TS030

    Guru Member

  • Grup: Senior Members
  • Posts: 15,193
  • Înscris: 25.06.2012
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
MrReason

MrReason

    Senior Member

  • Grup: Senior Members
  • Posts: 9,266
  • Înscris: 08.10.2010

View PostTS030, on 26 noiembrie 2014 - 10:37, said:

La prima intrebare, incearca sa-ti raspunzi singur.
Eu nu te-am intrebat din cauza ca n-as sti.

View PostTS030, 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
TS030

TS030

    Guru Member

  • Grup: Senior Members
  • Posts: 15,193
  • Înscris: 25.06.2012
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
m3th0dman

m3th0dman

    Senior Member

  • Grup: Senior Members
  • Posts: 9,269
  • Înscris: 03.01.2007

View PostMrReason, 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? Posted Image
Din moment ce s-au realizat proiecte impresionante în limbajul respectiv nu cred că e o problemă cu limbajul în sine.

View PostTS030, 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.
În prezent la facultățile de profil (calculatoare și informatică) se studiază atât programare funcțională cât și programare logică. Eu de exemplu am făcut Lisp, ML și Haskell + am mai mai avut proiect în Lisp un laborator de AI.

View PostMrReason, 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.
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.

#27
MrReason

MrReason

    Senior Member

  • Grup: Senior Members
  • Posts: 9,266
  • Înscris: 08.10.2010

View PostClau_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."
Nu.

.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.

View Postm3th0dman, 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.
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.

View Postm3th0dman, 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.
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).

#28
m3th0dman

m3th0dman

    Senior Member

  • Grup: Senior Members
  • Posts: 9,269
  • Înscris: 03.01.2007

View PostMrReason, 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.
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.

View PostMrReason, 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).
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.

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
Gady_paul

Gady_paul

    Senior Member

  • Grup: Senior Members
  • Posts: 2,421
  • Înscris: 12.01.2008
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
MrReason

MrReason

    Senior Member

  • Grup: Senior Members
  • Posts: 9,266
  • Înscris: 08.10.2010

View Postm3th0dman, 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.
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? Posted Image
server - ghici iarasi ce?

View Postm3th0dman, 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.
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). 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?

View Postm3th0dman, 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...
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.).

Edited by MrReason, 03 December 2014 - 17:12.


#31
wirespot

wirespot

    Senior Member

  • Grup: Senior Members
  • Posts: 6,654
  • Înscris: 23.09.2002
Reaminteşte-mi te rog ce profil avea facultatea pe care ai urmat-o.

#32
MrReason

MrReason

    Senior Member

  • Grup: Senior Members
  • Posts: 9,266
  • Înscris: 08.10.2010
Relevanta? Cumva te mananca in ... ?

#33
danzi23

danzi23

    Senior Member

  • Grup: Senior Members
  • Posts: 6,072
  • Înscris: 14.08.2013
@MrReason
ai terminat sau acum esti student? nu te intreb la misto, chiar vreau sa stiu. (eu sunt stundent)

#34
wirespot

wirespot

    Senior Member

  • Grup: Senior Members
  • Posts: 6,654
  • Înscris: 23.09.2002
@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
m3th0dman

m3th0dman

    Senior Member

  • Grup: Senior Members
  • Posts: 9,269
  • Înscris: 03.01.2007

View PostMrReason, 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? Posted Image
server - ghici iarasi ce?
Pe logica asta orice program se reduce la conexiuni.

View PostMrReason, 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).
Ba' Lambda Expressions şi Stream API sunt cât se poate de fundamentale în Java; primele împreună cu method references ţin de sintaxa limbajlui iar Stream API face parte din java.util şi sunt strânse legat de Collection API. Plus că le găseşti în tutorialele de bază ale limbajului + cărţile care învaţă fundamentele limbajlui.
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.

View PostMrReason, 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?
Te refereai cât se poate de clar la limbaj; ai spus: „Cutare "concept" din limbajul functional x, te ajuta sa intelegi conceptul cutare din limbajul oop y.”
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.

View PostMrReason, 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.).
Chiar există şi cel mai bun exemplu e SQL; gândeşte la SQL când vrei rezultatele după anumită logică nu faci un query dumb unde selectezi tot şi apoi în cod calculezi ce-ţi trebuie ci faci un query mai complex un pic cu where, join, grouping by, aggregate functions etc. şi laşi engine-ul bazei de date să-ţi returneze datele deoarece e mai simplu de scris codul + e mai eficient.
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
MrReason

MrReason

    Senior Member

  • Grup: Senior Members
  • Posts: 9,266
  • Înscris: 08.10.2010

View Postwirespot, 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.
Monument de ignoranta e cam fiecare post al tau. Ai "invatat" niste chestii de la unii pe care-i percepi "autoritati" (desi adesea sunt niste ingnorati extremi ai domeniului) si ai lasat deoparte gandirea proprie. Ce dicteaza o gasca de frecatori de menta la nivel teoretic = "adevaruri biblice".

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

Bun venit pe Forumul Softpedia!

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate