wybór języka programowania

0

Aktualnie piszę w c++ i nie zamierzam tego zmieniać. Zastanawiałem się nad tworzeniem aplikacji w .net tylko nie wiem czy wybrać vb/vc++. Kilka miesięcy temu gdy uczyłem się podstaw, kupiłem książkę do visual basic'a, ale zacząłem również pisać w c++ i tak mnie wciągnęło, że na jakiś czas odstawiłem vb. W jakim środowisku mam pisać jeśli tworze app w c++? Jeśli będę pisał w vb bardziej zaawansowane aplikacje to umiejętności z c++ nie będą mi przeszkadzały i czy vc++ "jest lepszy/wydajniejszy" od vb? Którego środowiska .net byście uczyli się na moim miejscu? (myślałem dodatkowo nad innymi językami, z tego powodu, że zamierzam wiązać z programowaniem moją przyszłość. Java odpada niestety bo nie rozumiem jej składni i nie przypadła mi do gustu, pozostaje jeszcze php.)

0

Typowo .NET'owym językiem jest IMHO C#.

Tylko co do Javy masz rację. Ale żeby od razu rzucać się na Visuale? Na Twoim miejscu Basic'a nawet bym nie rozważał :D Ja też kiedyś myślałem o swojej przyszłości w C++ (jednak nigdy pod Visualem - istnieje wiele mniej topornych środowisk :D). Jednak gdy zainteresowałem się Python'em, to uznałem, ze wolę w nim programować - wygoda, większa przenośność projektów, brak potrzeby linkowania itp.

BTW. nie warto pytać na forum o takie rozterki życiowe, bo każdy programista poleci Ci swoje narzędzia, języki itp...

Pewnym jest, że programy pisane pod Visualami (zwłaszcza z użyciem XNA :D) są niezwykle przenośne - między wszystkimi wersjami Visty... - anegdota z nonsensopedii ;) Ale sporo w tym prawdy - kolega kiedyś w C# pisał gierkę na zaliczenie w Visual C#. Chciał, żebym sprawdził pod MonoDevelop, skompilowało się, uruchomiło i jednak nie działało jak należy - sprite'y bez przezroczystości, menu dziwnie działało itp. W gierkę nie bardzo dało się grać.

0

@Spine: Jak kompilowałeś pod Mono to co się dziwisz... A Visual C++ to jest jedno z najlepszych IDE obecnie na rynku i do tego za darmo.
Visual C++ to jest IDE a nie język programowania. W VC++ możesz pisać programy albo w "czystym" C++ lub w jego .NETowej odmianie zwanej C++/CLI.

0

W Visualu nie ma czystego C++ :D Jest C++ w wykonaniu MS, bo ta firma musi mieć własne standardy... Nie dziwi mnie, że tamten program nie działa pod Mono, chodzi mi bardziej o to, że Visual to IDE tylko pod systemy/platformy firmy MS, .NET'owe technologie również. Po co się tak ograniczać?

1

@Spine kto Ci takich bzdur naopowiadał?

0

na razie zostanę przy samym c++, bo po tym jak przeczytałem co piszecie nie ma sensu tworzyć app pod samą winde, ale jeszcze to rozważę. :7

0
winerfresh napisał(a)

@Spine kto Ci takich bzdur naopowiadał?

Spróbuj sobie w tym boskim Visualu napisać:

int i;
cin >> i;
int tab[i];

Kompilator VS2008 tego nie przyjmuje i o ile mi wiadomo, nowsze tak samo, a GCC od dłuższego czasu toleruje takie konstrukcje.

1

To, że toleuje, nie znaczy, że jest to poprawne :] Poprawne jest tylko składniowo

3
Spine napisał(a)
winerfresh napisał(a)

@Spine kto Ci takich bzdur naopowiadał?

Spróbuj sobie w tym boskim Visualu napisać:

int i;
cin >> i;
int tab[i];

Kompilator VS2008 tego nie przyjmuje i o ile mi wiadomo, nowsze tak samo, a GCC od dłuższego czasu toleruje takie konstrukcje.

Bo to jest rozszerzenie GCC. To jest zgodne ze standardem ale ze standardem C99 a nie z C++03. W C++ taka konstrukcja jest błędna.

0

@halc nie ma co sie ograniczac co do jednego jezyka w dzisiejszych czasach... ;)...jest wiele ciekawych jezykow scala,groovy,python,ruby,c#,erlang do wyboru do koloru zalezy co chcesz i jaka platforma

0

Ok, rozumiem. To dopiero podstawy więc się nie martwię, za jakiś czas wybiorę środowiska, które mi najbardziej pasują.

1
Spine napisał(a)

Pewnym jest, że programy pisane pod Visualami (zwłaszcza z użyciem XNA :D) są niezwykle przenośne - między wszystkimi wersjami Visty... - anegdota z nonsensopedii ;) Ale sporo w tym prawdy - kolega kiedyś w C# pisał gierkę na zaliczenie w Visual C#. Chciał, żebym sprawdził pod MonoDevelop, skompilowało się, uruchomiło i jednak nie działało jak należy - sprite'y bez przezroczystości, menu dziwnie działało itp. W gierkę nie bardzo dało się grać.

Mono samo w sobie nie wspiera XNA, ZTCW do tego trzeba dodatku.

Spine napisał(a)

W Visualu nie ma czystego C++ :D

Ignorance is ort! - Twoja sprawa, ale pisząc nieprawdę na forum szkodzisz innym.

chodzi mi bardziej o to, że Visual to IDE tylko pod systemy/platformy firmy MS, .NET'owe technologie również. Po co się tak ograniczać?

To Twoje "tylko" to 95% rynku. Jeśli chodzi o Visuala, to komercyjna firma nie musi pisać oprogramowania na platformy mające popularność na granicy błędu statystycznego, bo nie ma w tym żadnego interesu. Natomiast co do technologii, to Mono implementuje większość .NET: http://www.mono-project.com/Compatibility i działa na platformach innych niż Windows.

halc napisał(a)

na razie zostanę przy samym c++, bo po tym jak przeczytałem co piszecie nie ma sensu tworzyć app pod samą winde, ale jeszcze to rozważę. :7

Programowanie to nie tylko programy konsolowe czy aplikacje desktopowe. Na świecie powstaje coraz więcej aplikacji webowych. W nich nie ma znaczenia, z jakiej platformy korzysta użytkownik.

0
somekind napisał(a)
Spine napisał(a)

Pewnym jest, że programy pisane pod Visualami (zwłaszcza z użyciem XNA :D) są niezwykle przenośne - między wszystkimi wersjami Visty... - anegdota z nonsensopedii ;) Ale sporo w tym prawdy - kolega kiedyś w C# pisał gierkę na zaliczenie w Visual C#. Chciał, żebym sprawdził pod MonoDevelop, skompilowało się, uruchomiło i jednak nie działało jak należy - sprite'y bez przezroczystości, menu dziwnie działało itp. W gierkę nie bardzo dało się grać.

Mono samo w sobie nie wspiera XNA, ZTCW do tego trzeba dodatku.

Ta gra kolegi nie była zrobiona w oparciu o XNA, korzystała z tego co jest w Mono, bo chyba by mi się nie skompilowało ;) Jak pisałem to pewnie tak zabrzmiało, jakby ona była na XNA, a nie była.

somekind napisał(a)
Spine napisał(a)

W Visualu nie ma czystego C++ :D

Ignorance is bliss - Twoja sprawa, ale pisząc nieprawdę na forum szkodzisz innym.

Jeśli ten C++ jest taki "czysty", to czemu kod w nim napisany nie jest przenośny między platformami?

somekind napisał(a)

chodzi mi bardziej o to, że Visual to IDE tylko pod systemy/platformy firmy MS, .NET'owe technologie również. Po co się tak ograniczać?

To Twoje "tylko" to 95% rynku. Jeśli chodzi o Visuala, to komercyjna firma nie musi pisać oprogramowania na platformy mające popularność na granicy błędu statystycznego, bo nie ma w tym żadnego interesu. Natomiast co do technologii, to Mono implementuje większość .NET: http://www.mono-project.com/Compatibility i działa na platformach innych niż Windows.

Przesadziłeś trochę z tymi 95%... http://www.w3schools.com/browsers/browsers_os.asp
Część firm jakoś może tworzyć wieloplatformowe komercyjne aplikacje, ale cóż... inne firmy już taką mają politykę, że tego nie robią. Może nie mają tak wykwalifikowanej kadry, żeby raz napisać kod i skompilować wszędzie? Ludzie się uczą i coraz więcej korzysta z alternatywnych systemów. Zatwardziałych Windowsiarzy się nie przekona. Ale świeży użytkownik komputera bardziej polubi np. Centrum Oprogramowania zaraz po instalacji Ubuntu, gdzie może za darmo zainstalować programy podzielone na kategorie (nie musząc ciągle klikać next :P) i nie musi nawet korzystać z antywirusa. Ale świeżych użytkowników wcześniej uczą Windowsiarze, bo ich po prostu jest więcej - takie jest to błędne koło.... Ale to nie ten flame :D

0

somekind:
Używałeś tego Mono na Linuksie? Wg mnie kompatybilność Mono z .NETem jest na poziomie kompatybilności Wine z Windowsem. Czasem działa OK, czasem wolniej, czasem brakuje ficzerów, a czasem w ogóle nie chodzi. Po co męczyć się z pisaniem przenośnego kodu pod Mono, skoro można wygodniej pokodzić pod Javę?

0

Porzucenie nauki jakiejś technologii tylko dlatego, że jest nieprzenośna nie jest do końca sensowne. Wszystko zależy od tego czego klient oczekuje. Niedawno miałem do czynienia z webowym systemem dla jednego z banków. Systemprzeznaczony tylko do zastosowań wewnętrznych(klient nie ma z nim kontaktu) - całość oparta na ActiveX, czyli nie tylko system MS, ale tylko IE.
Przenośność między systemami jest po prostu często niepotrzebna.

0

Jeżeli klient chce oprogramowanie robione jednorazowo tylko pod siebie, to nie ma znaczenia pod co. Może nawet chcieć program pod WyderOSa, jeśli zaproponuje odpowiednią stawkę to chętni się znajdą.

Mi bardziej chodzi o to, że używając narzędzi od MS programista staje się uzależniony od MS, jest tak zagrzebany we wnętrznościach Windowsa, że ciężko mu się odnaleźć w innych środowiskach. Poza tym pisząc na przenośne platformy, zwiększa się swoje możliwości rozwoju (tzn ilość ścieżek), można szybko przejść do programowania innych rzeczy, np pisząc w Javie można raz pisać pod Androida, raz na chmury (np Googlową), a raz na desktopa. Raz gierkę, raz jakiś edytor, raz jakiś program użytkowy, a raz krowę biznesową.

1

Pisząc w technologiach MS mogę raz pisać aplikację windowsową, raz webową, raz animację Silverlight, raz na urządzenie mobilne (na Androida chyba też jest jakiś port, no ale to już nie od MS), a raz na chmurę. No i jeszcze gry na PC, które w większości powstają na Windę. Tylko ta pierwsza czasem wymaga wiedzy o "wnętrznościach Windowsa". Ja w zasadzie zbyt wiele o nich nie wiem, jakoś mnie to nie kręci ani do niczego nie jest potrzebne. Jestem programistą, nie administratorem.
To czy ciężko się odnaleźć gdzie indziej, to zależy od człowieka, poza tym jest to głównie kwestia przyzwyczajenia, a ono przychodzi z czasem. Chociaż faktycznie, MS dostarcza tak dobre języki, platformy i narzędzia deweloperskie, że czasem ciężko przejść na coś gorszego i mniej przemyślanego.

0

Wcześniej przeoczyłem tego posta, teraz odpowiem.

Spine napisał(a)

Jeśli ten C++ jest taki "czysty", to czemu kod w nim napisany nie jest przenośny między platformami?

Czym w takim razie jest "czysty C++"? Który kompilator w pełni spełnia standard tego języka, nie dodając żadnych swoich rozszerzeń? I czemu w standardzie tak często występują zwroty "implementation specific" oraz "undefined behaviour"?

Przesadziłeś trochę z tymi 95%... http://www.w3schools.com/browsers/browsers_os.asp

Statystyki odwiedzin strony w3schools nie są reprezentatywne dla wszystkich użytkowników komputerów, bo jest to strona techniczna.

Może nie mają tak wykwalifikowanej kadry, żeby raz napisać kod i skompilować wszędzie?

Nie sądzę, by było to kwestią kadry, lecz kosztów i potencjalnych zysków.

Ale świeży użytkownik komputera bardziej polubi np. Centrum Oprogramowania zaraz po instalacji Ubuntu, gdzie może za darmo zainstalować programy podzielone na kategorie (nie musząc ciągle klikać next :P)

Prowadziłeś jakieś badania w tym temacie?
Bo ja obstawiam, że przeciętnemu użytkownikowi łatwiej jednak kliknąć kilka razy przycisk "dalej", bo to nie wymaga żadnej wiedzy ani nauki, niż dodać w konsoli PPA, uprzednio znajdując informację o tym w necie.

0
somekind napisał(a)

Ale świeży użytkownik komputera bardziej polubi np. Centrum Oprogramowania zaraz po instalacji Ubuntu, gdzie może za darmo zainstalować programy podzielone na kategorie (nie musząc ciągle klikać next :P)

Prowadziłeś jakieś badania w tym temacie?
Bo ja obstawiam, że przeciętnemu użytkownikowi łatwiej jednak kliknąć kilka razy przycisk "dalej", bo to nie wymaga żadnej wiedzy ani nauki, niż dodać w konsoli PPA, uprzednio znajdując informację o tym w necie.

Przeciętnemu użytkownikowi wystarczą programy ze standardowego repozytorium, do którego nie trzeba dorabiać nic z konsoli, a jak ściągniesz pakiet deb, to wystarczy go otworzyć (domyślnie w centrum oprogramowania) i kliknąć przycisk "Zainstaluj" - i tak mniej kliknięć :D Pewnie się teraz przyczepisz, że hasło trzeba wpisać - trochę bezpieczeństwa nie zaszkodzi...

Badań w tym temacie nie prowadziłem, ale po prostu widzę co się dzieje. I tak komuś kto nie chce się znać nawet na instalacji oprogramowania, zrobi to ktoś inny. Jedyny problem to większość Windowsiarzy w otoczeniu i oni instalują to co im pasuje...

0

W C# można łatwo stworzyć ClickOnce Application installer - instalowanie jednym (no, dwoma) kliknięciem :)
Ale to instaluje w jakimś dzikim katalogu gdzieś w profilu użytkownika… zamiast w Program Files.

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