Warsztat.GD

Programowanie => Szkółka => Wątek zaczęty przez: topik92 w Kwiecień 22, 2015, 12:56:25

Tytuł: Technologie Mircosoftu.
Wiadomość wysłana przez: topik92 w Kwiecień 22, 2015, 12:56:25
Dla niecierpliwych jakie technologie Microsoftu są warte nauki do komercyjnego zastosowania z uwględnieniem podstaw jakie trzeba mieć do ich opanowania.

To mój pierwszy post na forum i chce się ze wszystkimi przywitać :). Jestem studentem elektrotechniki a moje studia nauczyły mnie że programowanie jest wszędzie i że najlepiej zmienić zawód póki na to czas. Do inżyniera mam 2 lata i do tego czasu chciałbym zdobyć umiejętności pozwalające pracować jako jak pomocnik programisty najniższego szczebla:P. Programować lubię podstawy podstaw mam. Pozostaje pytanie  czego się uczyć wybór padł na C# trochę przypadkowo a trochę dlatego że platforma mirosoftu ma msdn ładną i dużą dokumentacje a ja mam za mało czasu żeby go marnować na szukanie OpenSorsowych dokumentacji których może zwyczajnie nie być i inne tego problemy. Aktualnie uczę się z tej książki  http://www.introprogramming.in[...]h-CSharp-Nakov-eBook-v2013.pdf tylko pytanie co dalej. Gdzie bym nie czytał to widzę sprzeczne informacje jedni mówią że WF jest  przestarzałe i tylko WTF kolejni mówią ze to tez jest przestrzałem i tylko ASP + WF i jakieś dodatki, kojeni mówią jeszcze inaczej, za chwile okazuje się ze jednak Java jest lepsza.. i tak w kółko macieja. A sam nie wiem sam nie mogę o cenić co jest wartościowe a co nie bo po prostu nie mam doświadczenia. Zależny mi też na tym by dość szybko opanować  umiejętność tworzenia prostych aplikacji okienkowych w KOMERCYJNEJ i przyszłościowej technologii bo ich poziom złożoności jest dużo wyższy niż aplikacji konsolowych a chyba za złożonymi sytuacjami będę musiał sobie radzić w  pracy, warto już teraz uczyć się tym zarządzać.
Tytuł: Odp: Technologie Mircosoftu.
Wiadomość wysłana przez: komorra w Kwiecień 22, 2015, 14:57:52
Cześć :) Moim zdaniem C# to dobry wybór na początek (m.in. dlatego że ma bogatą bibliotekę standardową, a więc nie będziesz musiał wymyślać koła na nowo + dodatkowe biblioteki tworzone przez prężne community + jak się chce to można wywoływać natywny C/C++).

Co do Javy (i ogólnie innych technologii) - wszystko jest dla ludzi i trzeba dobierać technologię do problemu jaki generuje twój cel. Np. C# jest "multiplatformowy" (jeżeli multi to wszystkie odmiany systemu Windows ;) (chociaż jest projekt Mono, dzięki któremu odpalisz programy dot netowe nawet na linuxie i macu) a Java JEST multiplatformowa (chociaż może w niektórych przypadkach zbyt mało wydajna), a więc jeżeli np. celem jest napisanie aplikacji, która chodzi wszędzie na wszystkim to np. Java lub technologie webowe jak najbardziej.

Warty jest moim zdaniem nauki i WinForms (+np. jakiś pak kontrolek typu DevExpress) i WPF (nie mylić z WTF właśnie :P) WCF oraz jakiś backend bazodanowy typu MS SQL.
Tytuł: Odp: Technologie Mircosoftu.
Wiadomość wysłana przez: 10log w Kwiecień 22, 2015, 15:23:11
Dla niecierpliwych jakie technologie Microsoftu są warte nauki

Żadne ;). Szczerze to lepiej pójść w Jave. Dużo większy rynek pracy a przy odrobinie chęci potem można się łatwo przerzucić na Androida. W sumie sam język to i tak 5% sukcesu. Trzeba się też naumieć używać różnych frameworków czy bibliotek, które często są wymagane przez pracodawców.
Tytuł: Odp: Technologie Mircosoftu.
Wiadomość wysłana przez: deadeye w Kwiecień 22, 2015, 16:00:35
Jeśli myślisz o pracy, to dużego znaczenia język nie ma.

Ważniejsze jest sobie zadać pytanie:
desktop, mobile czy web

Jeśli chcesz desktop, to c# i java będzie dobra. Java jest nieco trudniejsza i mniej logiczna jeśli chodzi o frameworki, jest więcej pracy ale też przez to nieco mniejsze płace.
C# jest dobry, również możesz łatwo znaleźć pracę, a przy ty sam język jest łatwiejszy i nieco lepiej płatny. Co do technologii to i tak będziesz się musiał nauczyć więcej niż jednej. Najbardziej przyszłościowy na desktop jest WPF, a na web ASP.NET MVC, ale to zupełnie dwie różne drogi. Ogólnie web w kategoriach komercyjnego softu jest o wiele trudniejszy na początek, więc jak chcesz mieć szybkie efekty, to proponuje jednak WPF.
Tytuł: Odp: Technologie Mircosoftu.
Wiadomość wysłana przez: BrunonDEV w Kwiecień 22, 2015, 16:14:07
Witaj!

Ja Ci polecam C++.

- Miły, łatwy w nauce i o dużych możliwościach.

- Masz nad wszystkim kontrolę (wskaźniki). ;)

- Dobra biblioteka standardowa.

- Dobre biblioteki, np. Allegro, SFML, OpenGL, DirectX.

Oczywiście nie sugeruję żebyś odrzucił C#, ale według mnie C++ jest po prostu lepszy.

Javy (100% obiektowe) się ucz dopiero gdy opanujesz programowanie strukturalne. ;)

Pozdrawiam.
Tytuł: Odp: Technologie Mircosoftu.
Wiadomość wysłana przez: 10log w Kwiecień 22, 2015, 16:34:06
Ja Ci polecam C++.

- Miły, łatwy w nauce i o dużych możliwościach.

- Masz nad wszystkim kontrolę (wskaźniki). ;)

- Dobra biblioteka standardowa.

- Dobre biblioteki, np. Allegro, SFML, OpenGL, DirectX.

Patrząc przez pryzmat rynku pracy to C++ wygląda blado. O allegro, SFML, OpenGL czy DX to już nie wspomnę.

Oczywiście nie sugeruję żebyś odrzucił C#, ale według mnie C++ jest po prostu lepszy.

Javy (100% obiektowe) się ucz dopiero gdy opanujesz programowanie strukturalne. ;)

Pozdrawiam.

Nie musisz od razu rzucać się na jakieś skomplikowane wzorce projektowe. Można od razu nauczyć się programować w języku obiektowym. Idąc dalej mógłbyś polecić najpierw asembler przed programowaniem strukturalnym. W dodatku OOP to jest teraz trendy słówko :)
Tytuł: Odp: Technologie Mircosoftu.
Wiadomość wysłana przez: lethern w Kwiecień 22, 2015, 17:55:47
Wybór między .NET i Javą to poniekąd kwestia "osobista", wydaje mi się że do każdej opinii znajdziesz kontropinię, więc pojawia się wrażenie, że wybór jest chaotyczny. Moje skromne zdanie - trzymaj się Microsoftu (pracowałem zawodowo z obydwiema technologiami)

Oczywiście wykluczamy C++...

Najnowsze rozwiązanie Webowe od Microsoftu, jak kojarzę, nazywa się "ASP.NET MVC" (jest następcą ASP, ASP.NET, WebForms). Jednak nie musisz się uczyć najnowszego akurat, bo możesz trafić do pracy w której wcale nie będą jej używać. Co byś nie wybrał, nie będzie to strata, w branży programistów nie jest niczym dziwnym, że uczysz się nowych rzeczy on demand (przykład: w mojej obecnej pracy wykorzystuje się każde z: C# .NET, VB .NET, Java, PostgresSQL, MSSQL, Oracle, Windows, Linux)

Co do "ścieżki" to bym powiedział że jest dobra, tj. przerobisz sobie książkę czy kilka, dalej, możesz pogłębiąć wiedzę, wejdź w szczegóły, spróbuj dodawać bardziej skomplikowane rzeczy (czyli np. obsługę błędów, tranzakcji, filtrów, modal paneli, styli i wyglądu, uprawnień - można wymyśleć milion rzeczy, każdą z nich będziesz musiał wygooglować, zrobić research i posiedzieć z kodem, i na pewno pójdzie na to więcej czasu niż masz)
Tytuł: Odp: Technologie Mircosoftu.
Wiadomość wysłana przez: wozix w Kwiecień 22, 2015, 18:40:01
Javy (100% obiektowe) się ucz dopiero gdy opanujesz programowanie strukturalne. ;)
Hue? Chyba nie do końca wiesz czym jest programowanie strukturalne. Przejrzyj sobie źródła choćby Linuxowego kernela i zastanów się czy jest sens skazywać kogoś na coś takiego. (nie twierdzę, że złe, ale kilka argumentów typu void* w funkcji do mnie nie przemawia).
Tytuł: Odp: Technologie Mircosoftu.
Wiadomość wysłana przez: BrunonDEV w Kwiecień 22, 2015, 18:55:26
@up:

Cytuj
Programowanie strukturalne – paradygmat programowania opierający się na podziale kodu źródłowego programu na procedury i hierarchicznie ułożone bloki z wykorzystaniem struktur kontrolnych w postaci instrukcji wyboru i pętli. Rozwijał się w opozycji do programowania wykorzystującego proste instrukcje warunkowe i skoki. Programowanie strukturalne zwiększa czytelność i ułatwia analizę programów, będąc znaczącą poprawą w stosunku do trudnego w utrzymaniu „spaghetti code” często wynikającego z użycia instrukcji goto.
From: http://pl.wikipedia.org/wiki/Programowanie_strukturalne (http://pl.wikipedia.org/wiki/Programowanie_strukturalne)

;)
Tytuł: Odp: Technologie Mircosoftu.
Wiadomość wysłana przez: Xion w Kwiecień 23, 2015, 00:17:18
Cytuj
Java JEST multiplatformowa (chociaż może w niektórych przypadkach zbyt mało wydajna)
Czy mi się wydaje, czy nie tylko odkopałeś dawno nieaktualnego mema pt. "jaka to Java jest wolna", ale jeszcze wtrąciłeś go na tym samym oddechu, na którym mówisz o C#/.NET, który to architektonicznie jest bardzo podobny i do Javy/JVM i ma bardzo podobne charakterystyki wydajnościowe? Wstyd, panie, wstyd. Takie fanbojstwo się nie godzi.

Cytuj
Ja Ci polecam C++.
- Miły, łatwy w nauce i o dużych możliwościach.
- Dobra biblioteka standardowa.
Oczywiście nie sugeruję żebyś odrzucił C#, ale według mnie C++ jest po prostu lepszy.
Gratuluję poczucia humoru :)
Tytuł: Odp: Technologie Mircosoftu.
Wiadomość wysłana przez: lethern w Kwiecień 23, 2015, 01:55:44
odkopałeś dawno nieaktualnego mema pt. "jaka to Java jest wolna"
Bo Java jest wolna, ale że akurat najwięcej czasu procesor spędza na "czekaniu na RAM", to się tego nie zauważa i się zrównuje z "czekaniem na RAM" aplikacji C++
Tytuł: Odp: Technologie Mircosoftu.
Wiadomość wysłana przez: DanielMz25 w Kwiecień 23, 2015, 02:55:34
Czy wybierzesz Javę czy C# to  jak będziesz cierpliwie szukał to pracę znajdziesz, jest mnóstwo ofert dla programistów javy i C#. C++ też nie jest zły, praca jest mało i to raczej dla wymiataczy, ale jak poznasz C++ to przerzucenie się na javę czy C# nie zajmie Ci dużo czasu :)
 Co do szybkości programów, to java i C# nie mają szans w starciu z C++ :)
Tytuł: Odp: Technologie Mircosoftu.
Wiadomość wysłana przez: topik92 w Kwiecień 23, 2015, 12:34:49
Cytuj
C++ też nie jest zły, praca jest mało i to raczej dla wymiataczy,
Z takiego założenia wyszedłem, musiałbym konkurować z ludzi którzy od 20 lat zajmują się tylko tym, albo zajmować się dużymi już istniejącymi aplikacjami, a przynajmniej tak mi się wydaje.
Cytuj
Żadne ;). Szczerze to lepiej pójść w Jave. Dużo większy rynek pracy a przy odrobinie chęci potem można się łatwo przerzucić na Androida. W sumie sam język to i tak 5% sukcesu. Trzeba się też naumieć używać różnych frameworków czy bibliotek, które często są wymagane przez pracodawców.

Dlatego pytam się które z fremeworków i bibliotek sa warte nauki. A co byś polecił z javy?.

Książka którą przerabiam jest bliźniaczką tej samej tyle że dla javy a ja jestem na takim etapie że ewentualna przesiadka jest kwestią dnia lub dwóch.

Skoro desktop jest niezbyt przyszłościowy a aplikacje mobilne są ciekawe ale ja niezbyt się pale do sprawdzania nowinek odnośnie nowego modelu telefonu 4 razy dziennie, to pozostaje web a do tego podobno  lepsza jest java. A jakie frameworki biblioteki są warte nauki w javie?
Tytuł: Odp: Technologie Mircosoftu.
Wiadomość wysłana przez: Xender w Kwiecień 23, 2015, 12:46:52
Bo Java jest wolna, ale że akurat najwięcej czasu procesor spędza na "czekaniu na RAM", to się tego nie zauważa i się zrównuje z "czekaniem na RAM" aplikacji C++
Czyli jeśli w danym przypadku nie widać różnicy, to po co się bujać z C++?

Co do szybkości programów, to java i C# nie mają szans w starciu z C++ :)
A JIT to pies?

Szybkość ma znaczenie, kiedy jesteś CPU-bound - dlatego C/C++ pisze się np. biblioteki numeryczne, które potem mogą mieć bindingi do innych języków.
Jeśli nie piszesz czegoś, co ma ciasne pętle i z góry wiadomo, że program spędzi na tym dużo czasu, to najpierw profiler, potem wnioski.

Bo możesz przepisać kawałek kodu z Javy/C#/Pythona na C++ z 10-krotną poprawą wydajności.
Albo i 200-krotną.
I co z tego, skoro program na wykonywaniu tego akurat kawałka kodu spędzał 0.25% czasu?

Dlatego pytam się które z fremeworków i bibliotek sa warte nauki. A co byś polecił z javy?.
To, co Ci potrzebne do roboty.
"Uczenie" się bibliotek na zapas brzmi jak kiepski pomysł.

to pozostaje web a do tego podobno  lepsza jest java. A jakie frameworki biblioteki są warte nauki w javie?
Java i web?
Na pewno jest to bardziej popularna kombinacja niż "C++ i web", ale nie tak popularna, jak poniższe:

PHP (jeśli lubisz gryźć beton, bo to taki "przyjemny" "język programowania").
Ruby.
Python + Django/Flask/Pyramid...
Node.js (no ok, nie wiem, czy jest popularniejszy niż Java).

A po stronie przeglądarki to na razie wybór jest tylko jeden: miłościwie panujący JavaScript, który z Javą ma wspólne:
- Nazwę.
- Składnię będącą wariacją na temat C.
I niewiele poza tym.
Tytuł: Odp: Technologie Mircosoftu.
Wiadomość wysłana przez: Frondeus w Kwiecień 23, 2015, 18:16:32
Cytuj
Java and Javascript are similar like Car and Carpet are similar.

Co do C++ - jeszcze rok, dwa lata temu wyśmiałbym samego siebie, ale uważam że języki dynamiczne (js, ruby, python) rozwijają się o wiele prężniej i to w nich tkwi potencjał. A tam gdzie potrzeba języka do zastosowań korpo - zawsze jest C# i Java.

Ostatnimi czasy Unity zaczyna dominować rynek indie (wystarczy spojrzeć na Ludum Dare, co druga gra jest na Unity, a co trzecia jest "zbudowana" w Unity do WebGL) a to oznacza że to właśnie JavaScript (a raczej jego pochodna czyli UnityScript) oraz C# są głównymi językami w których pisze się szybko i przyjemnie wszystko co ma "pójść na wszystkim".

Offtop: No i czekam z niecierpliwością aż Johnatan Blow da się pobawić swoim językiem , ale to już taka tendencja do testowania nowych rzeczy.
Tytuł: Odp: Technologie Mircosoftu.
Wiadomość wysłana przez: koirat w Kwiecień 23, 2015, 18:51:17
Java and Javascript are similar like Car and Carpet are similar.
Car - samochód
Car pet - czyli taki samochodzik pupilek

Coś  w tym jest.


Wracając do unity3d, żadnego developera który zamierza robić jakikolwiek większy projekt za pomocą pupilka nie będę traktował poważnie.
Tytuł: Odp: Technologie Mircosoftu.
Wiadomość wysłana przez: Frondeus w Kwiecień 23, 2015, 19:40:30
Ty możesz traktować go niepoważnie, a on w tym czasie wyda kolejną gierkę na Google Play :)
Z resztą co do JS wystarczy zobaczyć co z nim wyprawia @rezoner.
Tytuł: Odp: Technologie Mircosoftu.
Wiadomość wysłana przez: Xender w Kwiecień 23, 2015, 20:11:33
Wracając do unity3d, żadnego developera który zamierza robić jakikolwiek większy projekt za pomocą pupilka nie będę traktował poważnie.
Ale masa większych projektów w Unity już powstała, chyba z powodzeniem.

Będziesz traktował niepoważnie ludzi, którzy robią gry, samemu pisząc silnik w C++?
Akurat fanem Unity nie jestem, bo to zamknięta platforma, ale niedocenianie go jako narzędzia brzmi jak kompletne zaślepienie.

Może pora wyjść z nory?
Tytuł: Odp: Technologie Mircosoftu.
Wiadomość wysłana przez: koirat w Kwiecień 23, 2015, 20:16:10
@Frondeus Masz na myśli kolejną mini gierkę na Google Play - jak by już tam ich mało było.
Wyraźnie napisałem jakikolwiek większy projekt.

@Xender sam robię w Unity3d czytaj no ze zrozumieniem :)
Tytuł: Odp: Technologie Mircosoftu.
Wiadomość wysłana przez: Xender w Kwiecień 23, 2015, 20:21:47
@Xender sam robię w Unity3d czytaj no ze zrozumieniem :)
Pisz tak, aby dało się przeczytać ze zrozumieniem w sposób możliwie jednoznaczny. :P
"Jeśli chodzi o" do szczególnie jednoznacznych sformułowań nie należy, stąd pomyłka.
Tytuł: Odp: Technologie Mircosoftu.
Wiadomość wysłana przez: 10log w Kwiecień 24, 2015, 00:06:18
Dlatego pytam się które z fremeworków i bibliotek sa warte nauki. A co byś polecił z javy?.

Ja z Javy to tylko Android więc nie polecę Ci nic sensownego jeśli chodzi o desktop. Mój post był raczej poparty tym co widzę w ogłoszeniach i tym co oferują head hunterzy. Przykład z LinkedIn:
Cytuj
[Śląsk] Poszukiwani Java / Senior Java Developers (EE) - do 12 tys. zł brutto. Wymagania: ponad 2 lata doświadczenia komercyjnego w EE, znajomość Spring, Hibernate, Apache, Tomcat, znajomość relacyjnych baz danych.
Tytuł: Odp: Technologie Mircosoftu.
Wiadomość wysłana przez: DanielMz25 w Kwiecień 25, 2015, 02:21:19
JIT sporo daje. Ale bez porządnego zarządzania pamięcią się silnika do gier nie robi. Dlatego do niczego co ma być duże i możliwiejak najszybsze C# i javy nie polecam.
Tytuł: Odp: Technologie Mircosoftu.
Wiadomość wysłana przez: Krzysiek K. w Kwiecień 25, 2015, 21:15:59
Cytuj
JIT sporo daje.
Nie twierdzę, że nie. Ale żaden JIT nie ma prawa wyłączyć Ci featurów języka i nawet taka zwykła pętla po tablicy będzie musiała sprawdzać co chwilę, czy czasem nie rzucić wyjątku, albo czy jakaś referencja nie jest nullem. W językach typowo kompilowanych dla szybkości po prostu zakłada się, że kod jest poprawny, a ewentualne błędy nie rzucają wyjątków, tylko idą w maliny i tyle.

Cytuj
Ale bez porządnego zarządzania pamięcią się silnika do gier nie robi.
Porządne zarządzanie pamięcią jesteś w stanie zrobić samemu i w Javie i w C# na pulach obiektów, prealokując co trzeba itp. Ale to nie jest największa bolączka wydajnościowa tych języków.
Tytuł: Odp: Technologie Mircosoftu.
Wiadomość wysłana przez: iniside w Kwiecień 25, 2015, 22:25:25
Ale to nie jest największa bolączka wydajnościowa tych języków.

A co jest ? Pytam, juz calkiem z ciekawosci, bo szczerze nie wiem, a chetnie bym sie dowiedział od kogoś kto sie zna na rzeczy.
Tytuł: Odp: Technologie Mircosoftu.
Wiadomość wysłana przez: Krzysiek K. w Kwiecień 25, 2015, 23:47:33
A co jest ? Pytam, juz calkiem z ciekawosci, bo szczerze nie wiem, a chetnie bym sie dowiedział od kogoś kto sie zna na rzeczy.
Przede wszystkim zależy jak piszesz, bo we wszystkim da się napisać kod niewydajny. Ale pisząc wydajnie, póki co najbardziej mnie wydajnościowo bolało robienie dużej liczby operacji typowo low-level, typu przerzucenie pikseli tekstury i zrobienie na nich czegoś po drodze na CPU.
Tytuł: Odp: Technologie Mircosoftu.
Wiadomość wysłana przez: BrunonDEV w Kwiecień 25, 2015, 23:50:48
C++ ma świetny dostęp do pamięci; wskaźniki, std::vector, std::map, tablice dynamiczne, itd. ;)
Tytuł: Odp: Technologie Mircosoftu.
Wiadomość wysłana przez: bies w Kwiecień 25, 2015, 23:56:21
(...) żaden JIT nie ma prawa wyłączyć Ci featurów języka i nawet taka zwykła pętla po tablicy będzie musiała sprawdzać co chwilę, czy czasem nie rzucić wyjątku, albo czy jakaś referencja nie jest nullem. (...)
Nie twórz smutnych teorii. Kto, poza projektami na zaliczenie, robiłby implementację null-check naiwnie? JVM np. (i pewnie wszystkie inne) przechwytują SIGSEGV, SIGBUS itp po to aby wyłapać NPE. Działa to dokładnie jak w natywnym kodzie tylko, normalnie w takim C++ nie wyłapujesz SIGSEGV.
Tytuł: Odp: Technologie Mircosoftu.
Wiadomość wysłana przez: Krzysiek K. w Kwiecień 26, 2015, 11:45:23
Cytuj
Nie twórz smutnych teorii. Kto, poza projektami na zaliczenie, robiłby implementację null-check naiwnie? JVM np. (i pewnie wszystkie inne) przechwytują SIGSEGV, SIGBUS itp po to aby wyłapać NPE. Działa to dokładnie jak w natywnym kodzie tylko, normalnie w takim C++ nie wyłapujesz SIGSEGV.
No dobra - może poza faktem, że nie widziałem jeszcze implementacji handlera SIGSEGV która by wróciła do kodu, zamiast wywalić cały program w krzaki, ale to nie znaczy że takowe nie istnieją.

Nie zmienia to jednak faktu, że sprawdzania zakresu tablicy żadnymi systemowymi handlerami tak łatwo nie opędzisz. Może i czasem by szło wywnioskować poprawność indeksów z zakresu pętli, ale jeżeli referencja do tablicy nie jest lokalna, to przez wielowątkowość nic z tym nie zrobisz (musisz być gotowy na to, że inny wątek w trakcie iterowania podmieni Ci referencję tablicy na inną).
Tytuł: Odp: Technologie Mircosoftu.
Wiadomość wysłana przez: bies w Kwiecień 26, 2015, 12:17:07
1. https://wikis.oracle.com/display/HotSpotInternals/RangeCheckElimination
2. https://wikis.oracle.com/display/HotSpotInternals/PerformanceTechniques
Tytuł: Odp: Technologie Mircosoftu.
Wiadomość wysłana przez: Reg w Kwiecień 27, 2015, 03:43:37
topik92: Moim zdaniem Twoje pytanie jest trochę źle zadane, bo niepotrzebnie pytasz "jakie technologie Microsoftu". Oczywiście, ta firma daje studentom dostęp do swoich technologii za darmo i to jest fajne, ale jest też dużo innych technologii całkowicie darmowych i to nieprawda, że one są zawsze trudniejsze do opanowania albo jest do nich mniej materiałów edukacyjnych. Tak więc proponowałbym zadać sobie pytanie ogólniej - "jakich technologii się uczyć".

Jeśli chodzi o popularność języków programowania, to aktualna "lista przebojów" jest tutaj:
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Ale oczywiście sam język to nie wszystko. Ważny jest wybór całego środowiska, od systemu operacyjnego, przez narzędzia, do bibliotek używanych w danym języku. To zależy od rodzaju oprogramowania, jakie chcesz pisać - aplikacje biznesowe, strony WWW itd. O tym już napisali przedmówcy.