Początki informatyki

_fx
Użytkownik
Użytkownik
Posty: 8
Rejestracja: 7 sie 2012, o 18:57
Płeć: Mężczyzna
Lokalizacja: podlasie

Początki informatyki

Post autor: _fx »

C++ / Java , gdy nie interesuje cie wieloplatformowosc to zdecydowanie C# (chociaz w sumie C# tez jest wieloplatformowy:) windows phone, silverlight, asp etc.
Na twoim poziomie nie słuchaj o zadnej przewagi szybkosci - bedziesz umial pisac dobry kod to bedzie szybki, czasem nawet szybszy niz w asmie.
Jak znasz angielski to C# 4.0 in a nutshell - ksiazka i dla totalnego nooba, jak i dla kogos zaawansowanego gdyz zawiera wiele niuansów.
Awatar użytkownika
Althorion
Użytkownik
Użytkownik
Posty: 4541
Rejestracja: 5 kwie 2009, o 18:54
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 9 razy
Pomógł: 662 razy

Początki informatyki

Post autor: Althorion »

O ile zgadzam się, że za wydajnością nie ma najczęściej potrzeby ganiać, to już teoria, że dobry kod w C# będzie szybszy od assemblerowego trochę mnie jednak dziwi. Jakieś dowody na to? Jak w ogóle można przegonić asma wydajnością?
dexter90
Użytkownik
Użytkownik
Posty: 391
Rejestracja: 11 lis 2011, o 09:48
Płeć: Mężczyzna
Pomógł: 32 razy

Początki informatyki

Post autor: dexter90 »

O ile zgadzam się, że za wydajnością nie ma najczęściej potrzeby ganiać
a twoim poziomie nie słuchaj o zadnej przewagi szybkosci
To jakieś żarty, jest to bardzo ważne dla programistów i bardzo często doświadczeni koderzy wybierają odpowiedni język do złożoności problemu. Jest to opisane w wielu książkach. I to nie jest czysta teoria, ale w wielkich projektach naprawdę zauważalna różnica.

Co do przenośności ( firma Microsoft nie dba o to ) w przeciwieństwie do firmy Sun ( Java ).

Co do dobrego kodu - ogromnie trudne, nawet dla doświadczonego programisty. Od poziomu programowania będzie zależał poziom złożoności problemu.
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

Początki informatyki

Post autor: Afish »

dexter90 pisze:Co do przenośności ( firma Microsoft nie dba o to ) w przeciwieństwie do firmy Sun ( Java ).
Wszelkie rozmowy o przenośności oprogramowania mają sens jedynie w prostych projektach - całą wieloplatformowość można o kant kuli potłuc, gdy tylko zderzymy się z np. z projektowaniem interfejsu (gdy chcemy wykorzystać jakieś ciekawsze elementy niż zwykły przycisk) albo obsługą sieci. Przenośność niestety jest mitem.
Odnośnie Microsoftu i platformy .NET, to jest ona jak najbardziej przenośna - opisują ją standardy ECMA-334 oraz ECMA-335, więc stwierdzenie, że MS nie dba o przenośność jest lekko nietrafione.
I przy okazji: teraz Javą zajmuje się Oracle (Sun już nie istnieje).
dexter90 pisze:To jakieś żarty, jest to bardzo ważne dla programistów i bardzo często doświadczeni koderzy wybierają odpowiedni język do złożoności problemu. Jest to opisane w wielu książkach. I to nie jest czysta teoria, ale w wielkich projektach naprawdę zauważalna różnica.
Przy czym odpowiedni język nie znaczy język generujący najszybszy kod - najczęściej wybiera się taką technologię, która umożliwi szybkie wyprodukowanie i jak najłatwiejsze utrzymywanie oprogramowania. Stąd wzięła się popularność Javy (na początku była nieludzko wolna, ale dało się w niej szybko pisać) albo Pythona. Ponadto świat się zmienia i ciągle jest sporo projektów, które zostały napisane w nieużywanych już językach (vide COBOL), a które mimo wszystko trzeba utrzymywać. Problem nie jest taki prosty, nie zawsze możemy wybrać taką technologię, jaka nam odpowiada.
dexter90
Użytkownik
Użytkownik
Posty: 391
Rejestracja: 11 lis 2011, o 09:48
Płeć: Mężczyzna
Pomógł: 32 razy

Początki informatyki

Post autor: dexter90 »

Zgadza się - Oracle. Standardem .Net jest ECMA i powstają niezależne implementacje tego środowiska i są to projekty nie wspierane przez firmę Microsoft ( Mono, dotGnu , ..).

EDIT:

Co do Javy, na początku kod nie działał zbyt szybko, po co wracasz do tego, czego już nie ma? Ale na przestrzeni czasu program w Javie, program wykonywał się szybciej niż C++ i programista potrzebował o wiele mniej czasu na napisanie równoważnego programu w C++.

Od samego początku piszę, że wybór technologii zależy od złożoności problemu.

EDIT:

I co do wyboru technologii - zdania są podzielone i nikt tutaj nie może uważać słuszności swojego zdania bo punkt widzenia zależy od punktu siedzenia.

Pozdrawiam
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

Początki informatyki

Post autor: Afish »

dexter90 pisze:Zgadza się - Oracle. Standardem .Net jest ECMA i powstają niezależne implementacje tego środowiska i są to projekty nie wspierane przez firmę Microsoft ( Mono, dotGnu , ..).
Jednak to Microsoft postarał się o standaryzację platformy, co umożliwiło łatwiejsze napisanie niezależnych implementacji.
dexter90 pisze: Co do Javy, na początku kod nie działał zbyt szybko, po co wracasz do tego, czego już nie ma?
Pokazałem, że wybór technologii nie zależy tylko od szybkości działającego programu - gdyby tak było, to Java nie zyskałaby popularności.
dexter90 pisze:Ale na przestrzeni czasu program w Javie, program wykonywał się szybciej niż C++ i programista potrzebował o wiele mniej czasu na napisanie równoważnego programu w C++.
Do każdej teorii da się dorobić benchmark, więc możemy się licytować o szybkości każdego języka i nic z tego nie wyjdzie.
dexter90 pisze:Od samego początku piszę, że wybór technologii zależy od złożoności problemu.
Do tego się odniosłem.
dexter90 pisze: I co do wyboru technologii - zdania są podzielone i nikt tutaj nie może uważać słuszności swojego zdania bo punkt widzenia zależy od punktu siedzenia.
Wręcz przeciwnie - każdy powinien być przekonany o słuszności swojego zdania ;) Co nie zmienia faktu, że nie istnieje jedno rozwiązanie dla wszystkich problemów i dlatego mamy mnogość języków, paradygmatów i systemów operacyjnych.
dexter90
Użytkownik
Użytkownik
Posty: 391
Rejestracja: 11 lis 2011, o 09:48
Płeć: Mężczyzna
Pomógł: 32 razy

Początki informatyki

Post autor: dexter90 »

Odniosę się tylko do 1 i ostatniego cytatu.

Postarał się o standaryzację , ale o przenośność już walczą inni ( mowa tu o niezależnych implementacjach ).

Ostatni:

Tutaj masz rację, miałem na myśli po prostu to, że nikt nie może uważać "że tylko moje zdanie jest słuszne i tylko moje".

Pozdrawiam!
_fx
Użytkownik
Użytkownik
Posty: 8
Rejestracja: 7 sie 2012, o 18:57
Płeć: Mężczyzna
Lokalizacja: podlasie

Początki informatyki

Post autor: _fx »

Althorion pisze:O ile zgadzam się, że za wydajnością nie ma najczęściej potrzeby ganiać, to już teoria, że dobry kod w C# będzie szybszy od assemblerowego trochę mnie jednak dziwi. Jakieś dowody na to? Jak w ogóle można przegonić asma wydajnością?
wprowadizlem pewna nie scislosc, dobry kod w C# moze byc szybszy od zle napisanego kodu w asmie, na stackoverflowu ktos robil test
ODPOWIEDZ