Perl, Ruby, Python - który do nauki? Może jeszcze inny?

3

Jednak dział nie było dobry.. Chciałbym poznać i nauczyć się trochę któregoś z ww. języków. Który polecacie najbardziej, może jeszcze jakiś inny ciekawy, też może być interpretowany. Jakie są zalety i wady każdego z nich? Prosiłbym o wskazówki. A w ogóle pisze się gdzieś w pracy w tych językach?

3

SCALA!!!!!!!!!! ;D

Albo Haskell: http://learnyouahaskell.com/

0

z tych trzech to wybrałbym Pythona. Nie znam Rubego dlatego nie będę się wypowiadał ale wydaje mi się że Python jest po prostu szybszy.

"In dynamic languages, names are based on strings. Want to look up foo.bar? Find foo in the local variable hash table, then find bar in foo's hash table. In some dynamic languages, like Python and Ruby, there may be additional lookups/method calls to implement dynamically generated attributes.

All of these lookups are very hard to make fast. Python has one of the most well-tuned hash table implementations in the world, and JavaScript has had millions of dollars of research money poured into making it fast."

1

@Wibowit Haskell wydaje mi się bardzo dziwny składniowo, wolałbym na razie go nie ruszać :) Co do Scali, hm rozważę ten wybór, ale nie jestem pewien jej :|

1

No właśnie o to chodzi. Haskell praktycznie wymusza myślenie w kategoriach funkcjonalnych, a nie imperatywnych. Poznawanie kolejnego języka w tym samym paradygmacie co poprzednie raczej niewiele rozwija.

1

@Wibowit ale łatwiej nauczyć się języka który umożliwia pisanie i takie i takie (jak np. częściowo python). No i Python jest niewątpliwie bardziej "praktyczny" pod kątem zawodowym niż Haskell (chociaż słyszałem że ponoć można gdzieś złapać pracę w Haskellu).

2

A w Javie się nie da? http://functionaljava.org/

Problem w tym, że jak będą pętle, zmienne i inne tego typu imperatywne pierdoły to się człowiek nie przestawi na funkcjonalne myślenie. A z funkcyjnością w Pythonie to jest chyba najgorzej, bo tam nawet obiektu niemutowalnego nie da się zrobić.

Poza tym w Haskellu kod czysto funkcyjny jest generalnie szybki, w przeciwieństwie do czysto funkcyjnych językach w których funkcyjność nie jest centralną funkcjonalnością· Scala, dla przykładu, mimo iż jest statycznie typowana, co powinno gwarantować wysoką wydajność, to lata na JVMie, którego implementacje generalnie nie optymalizują rekurencji ogonowej. A programowanie czysto funkcyjne to generalnie masa rekurencji ogonowych.

Dodane:
Nie kierowałem się tutaj względami biznesowymi, bo jak wiadomo języki funkcjonalne są trudne do opanowania, jeśli ktoś jest nauczony na językach imperatywnych. A to powoduje małą podaż programistów języków funkcjonalnych = małą ilość projektów w nich napisanych. Natomiast konstrukcje (pseudo)funkcyjne można stosować obecnie w bardzo wielu językach, nawet C++11 ma sporo nowych własności, które to ułatwiają.

1

Po raz kolejny zamiast dyskusji o językach, którymi interesuje się autor mamy propagandę.

0

Ja polecę Rubiego. Moje osobiste odczucia w stosunku do Pythona są raczej słabe. W Rubym fajne jest to, że wszystko jest obiektem, dzięki czemu IMO łatwiej się czyta kod (chyba, że ktoś, np. ja, ma pasję tworzenia kosmicznie długich potworków jak nip.split(//).zip([6, 5, 7, 2, 3, 4, 5, 6, 7]).map{|a,b|a+b}.inject(&:+), choć to od biedy można jeszcze przeczytać).

0

nie rozumiem jak można polecąć Rubego?
Myślę że te wykresy mówią same za siebie:
http://hentenaar.com/serendipity/index.php?/archives/27-Benchmark-PHP-vs.-Python-vs.-Perl-vs.-Ruby.html

Przeczytajcie sobie to:
books.openlibra.com/pdf/learnyouahaskell.pdf

i powiedzcie czy jest coś lepszego?

0
winerfresh napisał(a)

Ja polecę Rubiego. Moje osobiste odczucia w stosunku do Pythona są raczej słabe. W Rubym fajne jest to, że wszystko jest obiektem (...)

Czy w Pythonie jest inaczej? W Pythonie możesz dziedziczyć również po typach wbudowanych.

0
AdamPL napisał(a)

W Pythonie możesz dziedziczyć również po typach wbudowanych.

To zdziedzicz po boolu, cfaniaku.

0

A nie lepiej zaprzyjaźnić się z java i androidem? Wyobraź sobie że wszystkie swoje aplikacje masz ze sobą w tablecie lub smartphonie.
A poza tym na androida się przyjemnie pisze :]

1 użytkowników online, w tym zalogowanych: 0, gości: 1