Praca licencjacka OOP

0

Piszę prostą, stricte teoretyczną pracę licencjacką, gdzie w ostatnim rozdziale będę porównywał ze sobą kilka wybranych języków programowania w jaki sposób i w jakim stopniu implementują paradygmat OOP. Docelowo zamierzam wybrać 3 języki do takiego zestawienia ale nie jestem do końca pewien jakie. Do tej pory mam taki zbiór, z którego chcę coś wybrać: Java, C#, Scala, Ruby, Python, Smalltalk, PHP, może JS?

Chodzi o to, aby te 3 języki nie były bardzo podobne do siebie (czyli np C# i Java jednocześnie odpada) i realizowały chociaż w małym stopniu OOP (czyli nie będę brał np. Haskella). Który język wygra to zestawianie nie jest szczególnie ważne, ma być przede wszystkim obiektywna ocena.

Stąd moje pytanie czy polecacie jakieś ciekawe języki, które warto byłoby opisać i przy okazji się czegoś nauczyć? Pytam, bo nie jestem ekspertem i do tej pory miałem styczność z zaledwie kilkoma językami.

1

Smalltalk, ruby i java - już masz kupę naprawdę odmiennych podejść

1

Jak chcesz faktycznie pokazać "różne" języki to ja bym jednak brał np. JavaScript, Ocaml (taki Haskell ale z obiektowością :P), Scala i jakiś imperatywny język jak Java.
Branie samych imperatywnych i bardzo podobnych języków wydaje sie bez sensu bo po prostu wszystko będzie do siebie bardzo podobne ;]

0

Przede wszystkim chodzi o przedstawienie różnych podejść do OOP i ocenę stopnia realizacji OOP tych podejść.
Na pewno jeden język będzie z worka w którym są np. Java, C#, C++ więc jako ten typ języka prawdopodobnie wybiorę C#, ponieważ jest mi do niego najbliżej. Smalltalk wpasowywałby się jako drugi język czysto obiektowy, ale nie wiem, wydaje mi się dość nie na czasie? Bardziej bym się skłaniał w stronę Ruby'ego. Do tego wrzuciłbym może JS jako coś skryptowego z OOP. Co sądzicie o takiej kombinacji: C#, Ruby i JavaScript?

0

IMO zróżnicowany zestaw to będzie: Smalltalk + jakikolwiek spośród: (Java, C#, Python, Ruby, Php) + Javascript.
Smalltalk - porozumiewanie się przez wiadomości, system "aktorów", jeden z pierwszych pomysłów na OOP,
Java/Python/Ruby itd. - obecnie najpopularniejsze podejście do OOP,
Javascipt - OOP oparte na prototypach zamiast klas.

Edit: @up: A czemu ma być na czasie? Tym lepiej - pokazuje początkowy zamysł na OOP i jak się zmieniło. Taki Ruby i C# nie różnią się za bardzo pod względem OOP (hmm... mixiny zamiast interfejsów? nie pisałem w ruby).

0

Dzięki za odpowiedzi, poczytałem trochę i także sugerując się waszym zdaniem, zdecydowałem się na C#, JavaScript i SmallTalk

0

Na Twoim miejscu rozważałbym przedstawienie Javy i Rubiego. Są to dwa najbardziej popularne z wymienionych przez Ciebie języków, a znacząco się różnią.
Java jest językiem statycznie typowanym, Ruby dynamicznie. Java jest silnie typowana, podczas gdy Ruby tylko w zasadzie też. Java opiera OOP na polimorfizmie i dziedziczeniu, podczas gdy Ruby opiera się na duck-typingu i mixinach. Ruby wspiera otwarte klasy, gdy Java jest zamknięta. Do tego Java nie jest w pełni obiektowa - typy prymitywne, metody statyczne, podczas gdy w Rubim wszystko jest obiektem. Do tego dodałbym informacje jakie to ma przełożenie na performance oraz możliwości języka.

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