декември 5, 2018

Моите мисли на различни програмски јазици

Source: http://stevehanov.ca/blog/index.php?id=142

Стив Ханов (Steve Hanov)

Објавено пред четири години

Ги мразам сите јазици. Еднаш, се обидов да создадам мој сопствен јазик, но не можев да дознаам кој јазик да го сторам тоа, така што никогаш не почнав.

Поголемиот дел од времето, немате избор на кој јазик да работите. Без разлика кој јазик го користам, научив да ги ценам и неговите предности и слабости.

Java

Луѓето кои сакаат Јава како пишување. Мислам: всушност, притискање на копчиња на тастатурата. Треба постојано да се повторувате.
Целиот Јава систем беше дизајниран од страна на лудо лице, чиј одговор на сè е да се користи моделот на дизајн. Ако видите дизајнерски обрасци како начин за работа околу проблемите на јазикот, ќе видите дека Јава има многу.

Од друга страна, луѓето на Sun навистина ја ставаат работата да ја направат Java спецификацијата која работи на вградени платформи, па затоа сме заглавени таму. Јас навистина не би му верувал на Python или C за да ја стартувам мојата работна површина на мојот телефон.

Исто така, што е со сите тие папки? Морам да го користам Eclipse, против мојата волја, бидејќи знае како да скокаат околу сите оние 1000 имиња на карактери. Дали навистина би повредило некој ако ги задржав 10-те предмети во мојата апликација во истата папка?

C

C е прецизна. Кога пишувам нешто во Ц, и тоа е направено, знам дека ќе работи. Тоа е како сликање ремек-дело со четка за еднократна коса. Мора да го кодот во тоа ниво на детали е поинаков начин на размислување. Кога ќе седнете за да напишете нешто во C, треба да го планирате пред да започнете. Инаку, тоа е многу работа за да го промените подоцна.
Ако имате доволно искуство, протекувањето на меморијата е ретка. Тоа е втора природа – примена/слободен доаѓаат во парови. Не можете да заборавите еден. Тоа би било како да се заборави да се исплакнете или да ги исклучите светлата. Вие едноставно го направи тоа.

Тоа се рече, ако сакате да насликате куќа, не сакате да користите убава четка. Сакате огромни ролки. Ако пишувам цела апликација, или систем, би избегнал C ако можам.

Тешко е да се направат големи промени во програмата C. Кога работам на алгоритам, и знам дека првиот прекин нема да биде во право, честопати ќе го користам во python, а потоа ќе го преведам во C, кога тоа ќе се направи.

C++

Тоа е C со низа класа. И низи и листи и купишта редици за спроведување на она што го посакуваш. Еден збор за мудро: не се обидувајте да направите свој шаблони. Премногу е тешко. Настрана од тоа, C++ го прави C подобар, и можете да напишете многу убав софтвер во C++. Дополнителните карактеристики го прават тоа скапо до поголемите системи со само умерена тешкотија, се додека сите ги следат истите конвенции.

Javascript

Ова е јазикот што никој не го сака. Но, JavaScript ви се допаѓа. Кога првпат сте го научиле, можеби сте напишале некој многу лош код кој користел низа како речник, со други предмети како клучеви, но тоа е сосема во ред, бидејќи тој код сеуште работи безуспешно и ќе продолжи да работи како и прелистувачи кандидира јаваскрипт.
Javascript нема линкер, така што целиот код го дели истиот именски простор, но секој го знае тоа, па сè сè уште работи заедно.

coffeescript

Coffeescript е преведувач кој зема чуден рубин јазик и го претвора во Javascript, по ред по ред. Тоа е JavaScript со сите надворешни синтакса – загради, загради, екстра клучни зборови отстранети. Останува само основно значење на кодот.

Coffeescript е убав. Кога ќе морате да напишете тони код, coffeescript ќе ве направат најмалку 25% побрзо. Можете да видите дека многу повеќе линии на екранот одеднаш.

Кога ќе го кодот во кофикс-сцена мора да бидете многу свесни за тоа што ќе се генерира Javascript. Тоа е проблемот. Прво мора да го знаете Javascript. Секој нов доаѓаат во вашиот проект мора прво да научат Javascript, и само тогаш учат кафикс, а потоа да научат вашата код база.

node.js

Сакав да го сакам. Мислам дека му го дадов доброто. Тоа се незгодите што ме фатија. Јас само знам дека еден ден, од која било причина, еден од тие обраќања нема да се случи, а потоа мојата апликација ќе биде заглавена чекање засекогаш. Тоа не е начин да се живее.
Исто така, речиси ништо не е вградено внатре. Но, ако треба да го направите X, секогаш има десетина модули за да изберете од тоа да го сторат истото. Кој го избирате? Кој ќе добие поддршка ако имате проблеми?

Scala

Scala е функционален, напишан јазик кој се компилира до JVM код.

Научив Scala на работа. Да, стартувањето всушност го користеше за нивниот производствен систем, и им се придружив прилично доцна.

Ова ми дозволи да ја видам грдата страна на Scala: Напишете ја заклучокот. Видовите се изведени во екстремна смисла. Сè што има тип, но да пронајдеме што е тој тип значи проверка на различни датотеки неколку нивоа назад. И Scala наследува фолдерот на Јава, лудило, па тоа значи да се пресече во неколку нивоа на папки за да ја пронајдете вистинската датотека за да го побарате типот.

На кратко, Scala беше одлично – за оригиналните програмери. Новодојденците имаа долга крива за учење за да го научат постоечкиот код.

Erlang

Erlang е исто така оној што сакав да го сакам. Јас навистина се обидов. Тоа е прекрасен функционален јазик кој ви овозможува да направите прекрасни мали модули кои комуницираат на прецизни начини, а вашиот систем може да работи 10 години, бидејќи може да се справи со неочекувани проблеми, да го рестартирате она што е потребно и да продолжите.
За жал тоа е барок. Се чинеше дека развојот застанал околу времето кога Беркли измислил сокети. Речиси ништо не е потребно во модерната ера е вклучено. Зошто е толку работа да се направи едноставна веб услуга?

Go

Go е лесно да се научи, дури и за новодојденците. Таа ги користи јазичните концепти од пред 40 години за да изгради робустен, асинхрони систем и ви овозможува да го кодирате како да е синхронизиран. Можете да напишете 1000 теми кои работат безбедно заедно во Go без повреда на мозокот.

Сеуште му е потребна работа во библиотечната поддршка. Кога сакам да направам X, која библиотека треба да ја користам – онаа на github од 2011 или онаа од 2013 година што е половина завршена? Едниот е поврзан со официјалните страници, но официјалните страници не изгледаат како да се ажурираат. Воздивнувај, претпоставувам дека ќе морам да го пишувам моето…

Python

Има библиотека за сè во python, и ако користите Linux, обично е јасно кој е врвен, бидејќи може да се инсталира со една команда.
Ако треба да направите некои бројки или научни компјутери, ќе бидете добро сервирани со избирање на Python.

Стрингови можат да бидат и текст и податоци во python, па мора да се научите за текстуалните кодови на почетокот.

Python 3

Python 3 има многу карактеристики со python, иако е поинаков јазик. Бидејќи е понова, тоа не е поддржано колку. Сакам да го користам, но секогаш има една библиотека што ми треба само што има поддршка од python 2.