Praca licencjacka OOP

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.

spartanPAGE
  • Rejestracja:prawie 12 lat
  • Ostatnio:3 dni
1

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

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
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 ;]


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
n0name_l
Scala nie ma sensu w tym, bo to to samo podejście do obiektowości co w Javie/C#.
Shalom
@n0name_l no chyba nie za bardzo. Java nie ma chociażby case classes czy traitów ;]
n0name_l
No nie żartuj, record type ma tyle wspólnego z obiektowościa co nic, a traity to interfejsy, poza mixinami nic absolutnie nie dochodzi..
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?

Wizzie
  • Rejestracja:prawie 11 lat
  • Ostatnio:prawie 8 lat
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).

edytowany 2x, ostatnio: Wizzie
Wizzie
edit: ew. jak pisal Shalom wez pod lupe OCamla zamiast JavaScriptu
0

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

Pipes
  • Rejestracja:około 11 lat
  • Ostatnio:ponad 3 lata
  • Postów:459
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.