Programowanie: Jaki język?

Artykuł jest we wczesnej fazie – szkic. Wszelkie uwagi są zawsze mile widziane.
Postaram się przygotować kreator. Każdy język ma swoją specyfikę inne zastosowania. Dzięki kreatorowi można by wybrać, np. co chcesz robić i zobaczyć propozycję języków.

Języki

Zastosowanie

Każdy język ma swoją specyfikę. Używa się go do różnych zastosowań.
Wiele języków to języki ogólnego przeznaczenia.
Jednak nadal pewne rzeczy łatwiej pisze się w danym języku niż innym.

Ucząc się programować, szybko się okaże, że sam język to wierzchołek góry lodowej.

Język programowania to tylko wierzchołek góry lodowej, którą będziesz musiał poznać.

Narządzia / Frameworki / …

Będziesz musiał się nauczyć obsługi wielu narzedzi.
Głowa może Ci pękać od ilości informacji, ale gdy tylko załapiesz podstawy – docenisz wygodę różnych narzędzi.

Jednym z takich narzędzi może być system zarządzania wersjami np. bardzo popularny git.
Dzięki niemu wiele programistów może pracować nad tym samym programem. A zmiany można automatycznie magicznie połączyć. Gdy coś pójdzie nie tak, zawsze możesz cofnąć np. zmianę która 'ktoś’ dokonał np. rok temu, zostawiajac wszystkie inne zmiany. Magia – co nie? Z pewnością nie będziesz tęsknił za wysyłaniem plików mailem 🙂

Z każdym językiem wiąże się wiele technologii, frameworków, itd.
Często nie mają wiele wspólnego ze sobą – są to osobne galaktyki.

Wsparcie

Język wiąże się również z pewną społecznością.

Społeczność to bardzo ważny punkt w procesie wyboru języka/technologii.

Będziesz popełniał miliony błędów.
Bez przerwy coś nie będzie działało, nawet gdy będziesz robił krok po kroku tak jak w książce, szkoleniu, dokumentacji!
Tak bywa. Wystarczy, że gdzieś coś się zmieniło (np. nowsza wersja, bibloteki zależnej).

Będziesz szukał pomocy.
Nie koniecznie trzeba zadawać pytanie. Bo często okazuje się, że ktoś już miał tem problem i odpowieź znajduje się w sieci.
Przy małej społeczności trudniej znaleźć odpowiedź.

Biblioteki

Im więcej osób pracuje w danym języku, tym więcej powstaje przydatnych narzędzi, które ułatwiają Ci pracę.
W informatyce biblioteka, to po prostu zbiór małych funkcji – programów które możesz użyć, by stworzyć coś większego.
Czesto okazuje się, że do A istnieje biblioteka B do C jest biblioteka D, … dzięki czemu nie musisz pisać wszystkiego od początku (bo ktoś już wykonał tą pracę). 

Niestety czasem sytacja może przypominać tą z filmu:

Tak czasm wygląda współczesne programowanie.

 

Prostszy język – to nie znaczy, że ma mniejsze możliwości!
Wybierz prostszy.
Gdy opanujesz podstawowy język – jego koncepcję.
Kolejnego nauczysz się z łatwością.

Będziesz szukał informacji: „Jak zrobić to co umiem w języku x”.
Oczywiście niektóre języki będą wymagały byś douczył się więcej.

W zależności od celu – wybierasz język

Podobnie jak w życiu, wybór narzędzi zależy od tego co chcesz zrobić.

Siekierą można rąbać drewno, ale nie pomoże przy grabieniu!

Grabie pomagają wyrównać teren, ale są nieprzydatne gdy chcesz przygotować drewno do kominka.

 

Specyfika języków

 

JavaScript / JS / ECMAScript

JavaScript (w skrócie: JS, a tak naprawdę jest to ECMAScript)

Jest to język „Interpretowany”.

Jest to język dostępny w każdej przeglądarce.
Każda przeglądarka posiada narzędzia programistyczne. W chrome wystarczy nacisnąć F12 (by otworzyć narzędzia programistyczne) i już możesz pisać.

JavaScript to język w którym pisze się programy które mają działać w przeglądarce (u użytkownika, po pobraniu strony z serwera).
Ze względu jego popularności i niechęci programistów do nauki kolejnego języka.
Współcześnie JS wykroczył poza przeglądarki. Przy użyciu JavaScript można pisać różnego rodzaju usługi po stronie serwera z wykorzystaniem tak zwanego node.
Przy użyciu JS – można również tworzyć aplikacje na telefon.

Jak wiesz na rynku mamy kilka przeglądarek. Każda z nich posiada wiele wersji. Dlatego pewne opcje dostępne są w nowszej wersji przeglądarki a inne nie. Ale aplikacja musi działać na tym i na tym. Dlatego w tym języku wykorzystuje się niezliczoną ilości 'łatek’.

Jeśli przeglądarka nie posiada danej opcji, to trzeba wykombinować, by mimo wszystko dana funkcjonalność naszej aplikacji działała.

Współcześnie jest już lepiej i wygodniej. Jednak cokolwiek piszesz, musisz wiedzieć jakie i jak stare przeglądarki chcesz obsługiwać.
Gdy już wiesz, to przed użyciem warto sprawdzić, kiedy i gdzie dana funkcja stała się dostępna (czy spełnia twoje kryteria).

https://caniuse.com/
 

Pierwsza biblioteka którą musisz poznać to: JQuery

Gdy będziesz tworzyć DUŻO bardziej skomplikowane strony, to z pewnością przydadzą się:

  • Angular
  • React
  • Vue
  • Backbone (+ Marionette)

Każda technologia ma plusy i minusy.

SQL

SQL to język komunikacji z bazą danych.
W języku SQL mówisz:

„Bazo danych, interesuje mnie klienci, których pozyskaliśmy w tym roku, którzy dokonali co najmniej kilka zakupów w tym produkt XYZ. Podaj mi ich imię, nazwisko i adres email wraz z ilością produktów które kiedykolwiek kupili.

Kiedyś jeśli będziesz tworzył duże aplikacje bazodanowe, z pewnością i tak będziesz musiał się nauczyć.
Proste zapytania zrozumiesz w mgnieniu oka.
np. (przykład kodu)

SELECT first_name, last_name, email FROM customers;

Proste? Wydaje się proste nawet jeśli nie znasz SQL.

Java

Wymaga kompilacji.

Język kochają korporacje.
Może nie kochają ale z niego korzystają.

Dlaczego?
Ponieważ do tej pory istnieje bardzo dużo bibliotek, 'kodu’ napisanego w tym języku. Migracja wymagała by napisania wszystkiego od nowa (a zajęło by to wiele lat).

Język wykazuje dużą stabilność. Zatem program napisany dziś nadal będzie działał za kilka lat!

C#

Wymaga kompilacji.

Python

Język interpretowany.

Mój ulubiony język.
Bardzo dynamicznie zyskuje zwolenników.

Python występuje w dwóch wersjach.
Python 2.7.x oraz 3.x.

Python 3.x nie jest w pełni kompatybilny z python 2.7.
Dlatego programy napisane w wersji 2.7 prawdopodobnie nie będą działały prawidłowo w python 3.x!

Jest to przekleństwo i jednocześnie najwspanialsza rzecz dotycząca Pythona.

Aktualnie jeśli co kolwiem masz robić – użyj python 3+.

Jest to niezwykle czytelny język.

Django

https://www.djangoproject.com/

The Zen of Python

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren’t special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one– and preferably only one –obvious way to do it.
Although that way may not be obvious at first unless you’re Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it’s a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea — let’s do more of those!
 

import this

PHP

Język interpretowany.

Bardzo popularny język.

’Funkcjonalny’

Najpopularniejsze silniki blogowe, zostały napisane w PHP: WordPress, Joomlna,

… Strony internetowe

Każdy hosting wspiera PHP, …

C++

C

TypeScript

To w zasadzie JavaScript. Trochę rozszerzony. Docelowo można przekształcić kod właśnie do poprawnego JavaScriptu.

Ruby

Konkurencja do Pythona.
Istnieją sprzeczki między programistami Ruby i Pythona.
Ja bym wybrał Pythona.

Odpowiednikiem Django (z pythona) jest Ruby on Rails.

Swift

Objective-C

Objective-C – rozszerzenie języka C o możliwości obiektowe, wzorowane na Smalltalku. Objective-C przyjął drogę całkowicie odmienną od C++. Jest używany głównie w frameworku Cocoa w systemie OS X oraz w iOS.

https://pl.wikipedia.org/wiki/Objective-C

W skrócie: język przydatny jeśli chcesz pisać natywne aplikacje dla iOSa (iPhone, iPad)

VB.NET
 

Assembly

Assembler jest to prawie kod maszynowy (0001 1011 001).
Prawie oznacza że w tym języku określasz konkretne komendy które procesor ma wykonać.
Różne procesory mogą mieć różne komendy.
Assembler umożliwia napisanie najbardziej wydajnych implementacji!
Assemblera używa się tylko dla fragmentów kodu, które muszą być naprawdę wydajne! – resztę pisz się w bardziej przyjaznych językach.

Prosta funkcja licząca ciąg fibbonaciego w asemblerze zajmuje 140+ linijek (nie licząc komentarzy – które są niezbędne by zrozumieć kod). W pythonie to samo może zająć max kilka linijek!

IncrementCount:
    mov    cx,cntDigits    ;
    mov    di,counter+cntDigits-1
    std            ; go from LSB to MSB
    stc            ; this is our increment
    pushf            ; save carry flag
.top
    mov    ax,000fh    ; convert from ASCII BCD to BCD
    and    al,[di]        ; get next digit of counter in al
    popf            ; recall carry flag
    adc    al,ah        ; add these digits
    aaa            ; convert to BCD
    pushf            ;
    add    al,’0′        ; convert back to ASCII BCD digit
    stosb            ; save and increment counter
    loop    .top        ;
    popf            ; recall carry flag
    ret            ;

To wycinek kodu liczący ciąg fibonacciego z http://assembly.happycodings.com/code1.html


 

R

Wygodny język do obliczeń statystycznych.
Ewentualnie możesz spróbować pythona z NumPy i SciPy.
Jednak python jest już językiem ogólnego przeznaczenia, zatem może nie być aż tak wygodny do obliczeń statystycznych.

Perl

VBA

Matlab

Go

Scala

Groovy

CoffeeScript

Visual Basic 6

Lua

Haskell

Ciekawe? Newsletter?

Subscribe
Powiadom o
guest
0 komentarzy
Informacje zwrotne w treści
Wyświetl wszystkie komentarze