Czego się uczyć C++ czy Java?

Programiści HTML5 i CSS3 nie istnieją…

Ten śmieszny żart przestał być śmieszny, gdy pojawiło się html5 oraz gruntopodobne aplikację.

Ja mam nadzieję, że ty żartujesz i to znaczy ten wielokropek.

Java -

1.Dobrze i łatwo dekompilować (Prawie każdy może mieć kod twego programu).

2.Szybko piszesz programy.

3.Na wiele maszyn.

4.Jest wolna.

C++ -

1.Trudna dekompilacja

2.Piszesz wolniej niż w javie.

3.Na pc i laptopy.

4.Jest wolniejsze od C ale nwm jak to się ma do javy.

Mógłbym doczepić się do każdego z tych punktów. Całość to “w sumie nieprawda”. Zaczynając od pierwszego punktu, gdzie można sprawić, by kod w javie był po dekompilacji bardzo nieczytelny.

A czego się uczyć? Zarówno C++ i Javy. Nadmiar wiedzy nikomu nie zaszkodził :slight_smile: Z resztą trudno programistę nazwać programistą jeżeli zna tylko jeden język programowania i jedną technologie. (Nie)stety świat idzie do przodu i Java stanie się kiedyś bezużyteczna (lub o wiele mniej użyteczna niż dziś)

C i C++ są niemal tak samo szybkie, przy dobrym kompilatorze (a taki jest każdy dzisiejszy “mainstreamowy”, mam tu na myśli GCC, Clang, chyba VC - osobiście go nie testuję, ICC i Open64 - ten w benchmarkach wygrywa, w praktyce na równi z resztą) narzut przez obiektowość jest niewielki. A co do szybkości Javy - wolny start (do 10 razy, pesymistycznie), później ~20% wolniej (pesymistycznie) względem C/C++, nikt tego nawet nie odczuje przy aplikacjach użytkowych.

“3.Na pc i laptopy.” Co to ma do rzeczy? W C++ mogę zaprogramować toster, jeśli ma jakikolwiek procesor, a on chyba nie jest ani PC ani laptopem.

Popieram hubciorza - warto znać oba. A nawet i więcej. Każdy ma swoje zastosowania.

Używając dobrego dekompilatora zmienie pliki na .java, a jeśli chodzi o to że napiszesz nieczytelny kod to teraz ci powiem dobry programista znający jave i tak odczyta kod.

Nie zrobisz odpowiedniego formatu pliku żeby pracował przy starcie procesora.

A jeśli chodzi o znajomość wielu języków się przyda się nawet na znalezienie swojego ulubionego.

np.

Ja kocham Asembly ale pierwszego uczyłem się C++.

Idź spać… co ma proces kompilacji do pisania w c++? Na tostery możesz pisać w czym chcesz ważne żeby tokeny w wyniku parsowania zamienić na odpowiednie instrukcje tegoż procesora.

I opisz mi to jak ty to zamienisz?

Tak samo jak osoba znająca dobrze assemblera odczyta kod napisany w assemblerze…ale z całego serca nie życzę żadnemu Java developerowi odczytywania czegoś takiego :

http://www.semdesigns.com/products/obfu … ample.html :slight_smile:

chyba nie masz pojęcia o programowaniu mikrokontrolerów:)

Nie trzeba żadnego formatu pliku, wystarczy znać model procesora, strukturę połączeń i po prostu wgrać mu Hexa, nie piszesz przecież binarki dla jakiegoś systemu operacyjnego, tylko gołego procesora.

A co do tej dekompilacji Javy - to samo dotyczy również platformy .NET, jakby ktoś nie wiedział.

@jojojo123

Czy ty rozumiesz czym jest język programowania, a czym jest program?

Nic nie stoi na przeszkodzie, żeby napisać sobie kompilator, który będzie przyjmował takie same ciągi znaków (instrukcje) jak te w C++ czy Java, a i tak zostanie to zamienione na instrukcje procesora tostera. Nie zrobisz tego w Visual Studio (bo pewno tylko tyle znasz), tylko musisz znać zestaw instrukcji procesora, umieć używać lekserów oraz parserów i umieć pisać kompilatory. A to czy na wejściu będzie C++, Java czy C# nie ma znaczenia, to jest tylko umowa, zawarta miedzy twórca kompilatora a programistą.

To tak jakbyś twierdził, że javy nie można skompilować do binarki natywnej - można tylko nie będzie ona przenaszalna miedzy systemami czy procesorami o innych instrukcjach i nie zrobisz tego przy pomocy javac z pakietu Oracla. Rozróżnij język od programu i procesu kompilacji. Język to tylko protokół komunikacji w wyniku którego kompilator utworzy program.

A po co ma robić? Kompilatory C++ np. dla ARM są od dawna.

+1 za Red/REBOL. Teraz, gdy część kodu R3 jest aktywnie rozwijana przez deweloperów innych niż Carl S. oraz biorąc pod uwagę ostatnie usprawnienia zaimplementowane w Red (“obsługa JVM”) - oba projekty mają coraz większe szanse na powodzenie.

Na http://recode.revault.org/ są już dostępne materiały wideo z ostatniej konferencji w całkiem dobrej jakości.

Jak chcesz pisać szpanerskie apki na androida to java, a gdy chcesz brać się za coś ambitnego to weż c++

Ale zwróc uwage na uniwersalne języki jak asm :wink: czy python. A gdy myślisz o grach na winde to c#.