Раздели на сайта
Избор на редактора:
- Как да разделите диск с инсталиран Windows без загуба на данни Разделете диска 7
- Защо издателите не могат да редактират всички страници
- В BIOS няма зареждане от флаш устройство - как да го конфигурирам?
- Pandao промо кодове за точки
- Опасен ransomware вирус се разпространява масово в интернет
- Инсталиране на допълнителна RAM памет
- Какво да направите, ако слушалките не възпроизвеждат звук на лаптоп
- Справочник диоди Мощни изправителни диоди 220V
- Възстановяване на Microsoft Word за Mac в OS X Yosemite Word не стартира на mac os sierra
- Как да нулирате паролата на администратора на Mac OS X без инсталационен диск
реклама
Кой е изобретил първия език за програмиране. Първи език за програмиране |
Нека го кажем накратко: правилният отговор на въпроса „кой език за програмиране да избера първо?“ не съществува в природата. Дори отговор от класа „един от тези трите“. Тя не съществува дори сега, в конкретния момент, когато пиша това, 10 април 2017 г., 21:38 часа киевско време - но още по-малко смисъл има да се опитваме да отговорим на този въпрос, гледайки месец, шест месеца или година напред. Това, което съществува, е няколко правилните въпросивъпроси, които е полезно да си зададете. Това ще бъде първата ви тестова задача за навлизане в професията: искате ли да отговорите на тези въпроси и като цяло да помислите и проучите предметната област, преди да вземете решение? Ако да, елате след мен. Някои предупрежденияпърво, един език не е достатъчен.Още през първата година на обучение. Все още ще са необходими поне няколко „специализирани“ езика (HTML, CSS, SQL, YAML, JSON, XML, Markdown - поне примери за различни синтаксис, което почти сигурно ще трябва да бъде прочетено и с голяма вероятност - написано). Но не само това. Програмист, който не е JS, почти със сигурност ще трябва да прочете малко JS; JS програмист - проверка на изпълнението на алгоритъма, описан в Python; за системен програмист да се занимава с нечий друг скапан код на скриптов език. И по пътя към „средното“ ниво ще трябва да овладеете половин дузина от тях. И за да станете истински професионалист, трябва да разберете парадигмите на всякакви фантастични боклуци. второ, Едва ли цял живот ще пишете на един език.И едва ли дори достатъчно дълго. Може би дори няма да сте тук за един месец. На първата ми работа през 2003 г. ме наеха като C++ алгоритмист, но също така поддържах малко уебсайт в PHP и също така добавих интерфейс към нашата библиотека в Excel VBA (потръпва). И нищо не е нормално, което просто не се случва на юношите. Но не само това - "основният" език в любимия ви офис ще се промени или друг работодател ще ви наеме на любимата ви тема, въздушните течения на стартиращата или корпоративната култура ще се променят - и WHAM - вече не помните структурите на толкова внимателно подбран „първи език“. Следователно, като цяло, не трябва да се отнасяте към този избор твърде многосериозно, като избор на жена или къща (те също могат да бъдат променени - но все пак малко по-трудно). Да започнете, да опитате всичко и да намерите своя собствена е много по-смислена стратегия, отколкото да прекарате няколко седмици/месеци/години в анализиране на „откъде дори да започнете“. Трето, и най-важното (и следва от първите две) - често не е „вие избирате езика“, а езикът те избира. Струва си да се интересувате истински от това, което правите, да го изберете като важна част от живота си - и говоря специално за такива хора, а не за тези, които се надяват да „спечелят допълнителни пари, като програмират в събота“ (нищо не може да спаси тях) - така че си струва да направите този избор и тогава всички съвети „какво да избера“ ще бъдат без значение. Интересна задача или обещаващ работодател ще се появи сам, езикът, на който не можете да го направите готин, ще падне сам, но друг ще израсне. Просто останете на линия. Внимание, правилните въпроси!И все пак, за да започне някъде, момиче/момче, което мисли за живота (т.е. избира кой език за програмиране да научи за начало), може да се запитате следното: Защо ще учиш?Много важен въпрос, който първо трябва да си зададете честно. Вземете допълнителен инструмент за основната си професия (например микробиология или счетоводство)? Забавлявате ли се в свободното си време? Помогнете на дете в училище?.. Е, добре, в mkdev по подразбиране приемаме, че ще работите като програмист (въпреки че ще се радваме да учим микробиолог - знаете ли, че Ruby е ужасно популярен сред тях?) . Но: вече сте твърдо убедени, че искате да намерите професия в ИТ възможно най-бързо или просто сте решили да опитате, дали е за вас? Във втория случай може да си струва да опитате дузина езици и подходи, за да разберете какво харесвате - или нищо, това също е добре! Свързан въпрос: колко време имашБез ясен краен срок „след една година вече трябва да печеля X долара“ - може да е разумно (и доста приятно) незабавно да планирате за себе си образование в „университетски клас“: тоест направете списък от няколко класически езика - Scheme, Haskell, Prolog, няколко индустриални (Java, Ruby, JS), няколко супер-модни (Rust, Pony, Elixir)... И въпросът "на какво точно да пишем" някак ще възникне на неговия собствени. Но ако искате „истинска професия и бързо“, тогава... Знаете ли точно в каква област искате да работите?„Само разработка на игри, нищо друго не ме устройва“, „Изкуственият интелект е това, за което съм мечтал от училище“, „Искам да съм по-близо до хардуера, да програмирам всякакви роботи и сензори“ или дори „Приятелите ми са ще започна стартиране на телевизионни сериали.” с големи данни“ са добри варианти за отговор на този въпрос. Но вие абсолютно не сте длъжни да ги имате. „Моля, покажете ми цялата гама“ също е добър отговор. И „междувременно ще се опитам да помогна на счетоводителя на чичо ми във фирмата му, но искат нещо по-интересно“ също е нормално. Виктор ще ви помогне да направите първите си стъпки в програмирането, ще ви научи на основите и езика Ruby! Освен това: Какво бихте искали да правите?Изглежда, че въпросът е същият като горния? Но не. Затворете очи и си представете как изглежда вашият идеален работен процес? Експериментирайте с интерфейса, така че потребителят да е доволен, без дори да знае колко усилия е инвестирано? Да измислите нов алгоритъм за сблъсък на частици за физическия двигател на играта и да отнеме три години, за да го усъвършенствате? Напишете много код бързо, комбинирайки дузина познати компоненти в нова идея за стартиране, преди някой да я измисли? Да се занимавате със сложно чуждо нещо, за да го накарате да работи в нова среда? - има огромен брой възможности, а някои дори водят далеч от професията на „просто програмист“ - в областта на devops, или UI специалисти, или анализатори на данни... Посветете поне 20 минути на тази медитация, резултатът може да е напълно неочакван. Например (във връзка с предишния въпрос), дори ако сте сигурни, че искате да участвате в разработването на игри, разберете, че искате да отстранявате грешки на нови нива или че наистина ще се забавлявате, като разработвате физически точни алгоритми за сблъсък, или - създаване на сървър за игри, който може да издържи стотици милиони връзки - това са все още много различни посоки за обучение и саморазвитие. И едва след като отговорите (или съзнателно решите да отложите отговора) на всички въпроси по-горе, има смисъл да зададете прагматичен въпрос: Какви езици се използват активно в момента?- в областта, темата и средата, която ви интересува. И изберете три (точно така!), които да овладеете в близко бъдеще. Какво точно да изберете - ще трябва да разберете на място, въпреки че по-долу предлагаме кратък преглед някои от популярните днесезици. Някои отговориЧувате ли странен тих звук? Това са „отговорите“, изброени по-долу, които стават остарели и ръждясали. Ако четете тази статия шест месеца след написването й, най-вероятно разделът „отговори“ вече е леко остарял ( Аконе е настъпило някакво катастрофално събитие, в резултат на което всичко е остаряло); четете го година по-късно - той е напълно остарял. Четете го 5 години по-късно - ... но дявол знае. В нашата област нещата се променят всеки ден, но често остават доста стабилни в дългосрочен план. Е, като цяло е ясно - прочетете внимателно. По-долу е субективна, кратка и непълна информация за въображаемите топ 15 текущи езика за програмиране (по азбучен ред).
C(100?- изглежда, че търсачката не можа да се справи) - единственият жив дядо на програмирането и освен това най-живият от всички живи. Цялата система (с измененията на Rust and Go, за които по-долу), програмирането на всякакви микроконтролери и вградени устройства, всякакви драйвери за дронове и други умопомрачителни неща все още е C. Това е и „базовият“ език за шиене или ускоряване на други езици и библиотеки (някакви научни глупости, които, да речем, първоначално са написани на Python, след това пренаписани на C за скорост, след това обвивки за тази C реализация се появяват в Ruby, Julia и Haskell... така ние на живо). Накратко, малко вероятно е първиезик, но задължително за изучаване - абсолютно. Освен това той изобщо не стои неподвижен и новите стандарти са доста свежи и добри; C++ (144)- грозният (според някои) или възхитително сложен (според други) племенник на C. Обектно-ориентиран, мета-програмируем, чудовищно свръхсложен, бавен за компилиране... накратко, C++ е първата ми любов сред езиците за програмиране . Сега се използва, доколкото може да се прецени, за разработване на игри, някои настолни системи и малко навсякъде, където C е възможно, но е необходим по-сложен код (тъй като gcc компилаторът е наличен във всички операционни системи и компилира и двете) ; C# (414)- един от малкото езици, на които програмистите са продали душите си на дявола и са почти тясно свързани с екосистемата на Microsoft (която, нека бъдем честни - особено за разработчиците - е доста впечатляващо развита). Области на приложение - игри, или комплексен скъп Enterprise софтуер. Самият език към момента е доста красив и прогресивен. И като цяло, като почти всички не нови и прагматични езици с общо предназначение, той има малко функционалност, много OO, малко метапрограмиране и т.н.; Clojure (6)- такъв магически еднорог от езици за програмиране, работи на JVM (прочетете за Java по-долу), наследник на Lisp, функционален език. Неговият диалект ClojureScript се компилира в JS (също прочетете по-долу защо това е важно). Използва се в „умни“ стартиращи фирми и в производството на много сериозни компании. Можете да избирате само от Big Love (но той е готин); Erlang+Elixir (5+10)- Erlang е език и платформа, които са особено популярни за създаване на телекомуникационни (преди) и като цяло разпределени (сега) приложения с голямо натоварване. Elixir е език, който работи на същата платформа, но е по-малко чужд от Erlang (обаче, „основният“ език на платформата все пак ще трябва да бъде разбран поне малко, вижте дискусията за Java по-долу). Днес всичко това малко намирисва на „елитарност“, но е здраво вкоренено в някои области (да речем в банковите системи) - и ужасно интересно; ES (JavaScript, CoffeeScript, TypeScript и др.) (788+10+64+...)- очевидният фаворит в момента, ES/JS/... по същество не е език, а семейство от езици. На тях са написани уеб интерфейси и мобилни интерфейси (по няколко различни начина), а също (по няколко други начина) сървърен и административен софтуер и дяволът да е плешив. Какво точно се нарича „JavaScript език“ днес е доста трудно да се определи: след като сте си наели работа като „JavaScript програмист“, в зависимост от вашия късмет, може да се окажете човекът, който поддържа древния интерфейс на банковата система, който, по дяволите, трябва да работи под всеки браузър; или част от модерен екип, който пише комплексна визуализация на научни данни в строго типизиран TypeScript; или внезапно да участвате в разработването на интерфейса на бъдещето на „следващата“ версия на езика, който е компилиран по сложен начин в нещо, което работи на стара Nokia... цял свят, който не може да бъде описан в един параграф. Но търсенето на „първия ви език“ в тази област е доста опасно; Има и трето мнение и история за това на какво се основава изборът на програмен език в реалната разработка Отиди (78)- прост като пръчка и ефективен език, създаден от Google, главно за случаите на „направете бърз, тъп, надежден код“. Полетът на мисълта у него веднага се прекъсва от грубостта на езика. Но е ефективен - не мога да опиша как; Java (466)- специален случай. Java е едновременно език и платформа (JVM) - и тази платформа работи например със забавен и готин Clojure, научно неразбираема Scala и JRuby (същият Ruby, но за JVM). А самата Java днес изобщо не е „ограниченият език за корпоративни роби“, за който някога е била известна. Имайки предвид невероятния брой мощни библиотеки, избора на езици, работещи на тази платформа и нейната гъвкавост, всеки уважаващ себе си програмист трябва да има някаква представа за Java. И Java е единственият (с известни резерви) език за разработка за Android; PHP (431)- стар окупатор на мрежата с чудовищна репутация. В съвременната версия той се е отървал от по-голямата част от адското наследство и като цяло е доста приличен модерен OO език. Но според стари спомени той съставлява много значителна част от интернет инфраструктурата. След като сте наели специалист по PHP, вие с еднаква вероятност можете да завършите в чист проект с архитектура и тестове - или можете да поддържате безумна праисторическа система с неструктуриран if/else за 2000 реда; Python (303)- някога „конкурент“ на Ruby като модерен език за мрежата и стартиращи фирми, сега езикът е основно за поддръжка на сложни и възрастни уеб приложения, които са израснали върху него - и повече за научни / големи данни изследвания, на някои места дори запушва R (виж по-долу); R (16)- език с общо предназначение, но използван само от учени/bigdata. Това е доста адски синтаксис (защото е стар), но има много страхотни пакети за него и изследвания, написани върху него. Почти най-добрият език в света, оказва се, е за задоволяване на любопитството; Рубин (124)- само преди няколко години „модерен“ и „хипстър“, днес това е просто един от основните езици. Много изразителен и лаконичен, малко „магически“, доста бавен. Използва се главно за уеб разработка. Днес това е език, който лесно се обича или мрази от пръв поглед и е доста лесно да се намери работа. Ruby също е обичан днес от администратори и тестери, има страхотни инструменти и за двете; Ръжда (3)- един от доста новите играчи. Бързо и предизвикателно. Той обещава да замени C в областта на системното програмиране, но засега изглежда, че има по-голям смисъл да го научим „за в бъдеще“; Скала (60)- „умен брат“ на платформата Java: модерен, сложен, функционален, ужасно обичан от всички бизнес анализи и следователно бързо набиращ популярност; Swift / Objective-C (58+15)- единственият избор за разработка на iOS. Разбира се, трябва да се съсредоточите само върху Swift (Objective-C вече е само за поддръжка на стари приложения) - и като цяло не е забележителен нито с някакви специални функции, нито с някакви специални глупости, приличен модерен език, сравним с C# и Java. Може да се препоръча само като първи за онези, които са решили твърдо да се свържат с Apple, тъй като приложимостта му е (съзнателно) ограничена. Някак, общо взето, така. Има някои неща, които не бяха включени в този списък - например Perl, за който разработчиците са доста търсени, но самият език е в странно състояние и не мога да го препоръчам като „първи“ език. Или, например, Lua също е популярен, но като език на малки скриптове за други системи (главно игри), да бъдеш „просто програмист на Lua“ изглежда безсмислено. Ех всичко разбирам. Какво да избера?..Ами това. Вземете всичко. (усмивка) Не, наистина. Всъщност една разумна стратегия (ако, разбира се, ще прекарвате значителна част от времето си в нашата професия, а не „да печелите допълнителни пари за половин година“) е да разберете какво някоиезици, от които се интересувате поне да разгледате през следващите месеци. Можете да ги изберете като цветовете в инструкциите за дизайнери - можете "от близки", можете "от противоположни", можете "от допълващи се"... Вашата цел в първите етапи е да го направите интересен и да започнете да успявате. И само вие можете да проправите пътя към тази цел и най-вероятно не за първи път. Такива неща. Накратко казано...В нашата област задаването на въпроси винаги е по-важно от знанието на правилните отговори. Защото отговорите се променят. А въпроси са необходими всеки ден. Интересувайте се, научете по малко от всичко, погледнете по-отблизо света. Останалото някак си става от само себе си. Начало на развитиеАсемблер езикВ случай, че е необходимо да има ефективна програма, вместо машинни езици се използват машинно-ориентирани езици, които са близки до тях - асемблери. Хората използват мнемонични команди вместо машинни команди. Но дори работата с асемблер е доста сложна и изисква специално обучение. Например, за процесора Zilog Z80, машинната инструкция 00000101 инструктира процесора да намали своя B регистър с единица. На асемблерния език това също ще бъде написано като DEC B. Структурно програмиранеСледващата стъпка е направена през 1954 г., когато е създаден първият език на високо ниво Fortran. FORTRAN - Преводач на формули). Езиците от високо ниво имитират естествени езици, като използват някои думи на говорим език и общи математически символи. Тези езици са по-удобни за хората; с тяхна помощ можете да пишете програми с дължина до няколко хиляди реда. Въпреки това, въпреки че е лесен за разбиране в кратки програми, езикът става нечетлив и труден за управление, когато става въпрос за по-големи програми. Решението на този проблем дойде с изобретяването на структурирани езици за програмиране. структуриран език за програмиране ), като ALGOL (1958), Pascal (1970), C (1972). Структурираното програмиране включва точно дефинирани контролни структури, програмни блокове, безусловни инструкции за прескачане (GOTO), самостоятелни подпрограми, поддръжка за рекурсия и локални променливи. Същността на този подход е способността да се раздели програмата на нейните съставни елементи. Също създаден функционален(приложни) езици (Пример: Lisp - английски. Обработка на LIST, 1958) и логичноезици (пример: Prolog - английски) ПРОграмиране в LOGic, 1972). Въпреки че структурираното програмиране, когато се използва, дава изключителни резултати, дори то се проваля, когато програмата достигне определена дължина. За да се напише по-сложна (и по-дълга) програма, беше необходим нов подход към програмирането. ООПВ резултат на това в края на 70-те и началото на 80-те години бяха разработени принципите на обектно-ориентираното програмиране. ООП съчетава най-добрите принципи на структурираното програмиране с мощни нови концепции, основните от които се наричат капсулиране, полиморфизъмИ наследство. Примери за обектно-ориентирани езици са: Object Pascal, C++, OOP ви позволява да организирате оптимално програми, като разделяте проблема на съставните му части и работите с всяка отделно. Програма на обектно-ориентиран език, решаваща определен проблем, по същество описва част от света, свързана с този проблем. Връзки
Фондация Уикимедия. 2010 г.Вижте какво е „Кратка история на развитието на езиците за програмиране“ в други речници: Езикът за програмиране е официална знакова система, предназначена за писане на програми. Програмата обикновено представлява някакъв алгоритъм във форма, разбираема за изпълнителя (например компютър). Езикът за програмиране определя множеството... ... Wikipedia Ruby Семантика: мулти-парадигма Тип на изпълнение: интерпретатор Появил се през: 1995 г. Автор(и): Юкихиро Мацумото Последна версия: 1.9.1 ... Wikipedia Ruby Семантика: многопарадигмен Тип на изпълнение: интерпретатор Появил се през: 1995 г. Автор(и): Юкихиро Мацумото Последна версия: 1.9.1 ... Wikipedia - (Haykakan Sovetakan Socialistakan Hanrapetutyun) Армения (Hayastan Country of Armenians). I. Обща информация Арменската ССР е създадена на 29 ноември 1920 г. От 12 март 1922 г. до 5 декември 1936 г. тя е част от Закавказката федерация (Вижте... ... - (Lietuvos Taribu Socialistine Republic) Литва (Lietuvos). I. Обща информация Литовската ССР е създадена на 21 юли 1940 г. От 3 август 1940 г. е част от СССР. Намира се в западноевропейската част на СССР. Граничи на север с... ... Велика съветска енциклопедия Първоначално програмирането имаше изключително примитивна форма и практически не се различаваше от подреден двоичен код с формализиран подход. Всъщност в началото на областта имаше малко разлики между език за програмиране и компютърен код. Нямаше очевидни и естествени удобства за програмиста; от него се изискваше да познава цифровите кодове за всяка машинна команда. Дори разпределението на паметта за изпълнение на команди падна върху специалиста. За да опростят работата с компютрите, хората започнаха активно да разработват езици, един от първите беше Асемблер. Започват да се използват символни имена за показване на променливи. Вместо числови операции е достатъчно човек да знае мнемонични имена, тяхното запомняне е много по-лесно. Вече на този етап езиците за програмиране се доближиха до език, разбираем за хората. Пионерите сред езиците за програмиране включват Fortranе съкратена комбинация от 2 думи: Формула и превод. Създаден още в средата на 50-те години. Езикът се използва и днес поради своята лекота и простота на писане, както и поради развитата система от библиотеки за Fortran. Най-често се използва за научни и инженерни изчисления, а също така се използва активно във физиката и други науки, свързани с математиката. Фокусирани езициПоради нарастващите области на употреба компютърПоявиха се и други езици за индивидуални разработки в нови области:
Още през 1968 г. за първи път стартира състезание, в което основната награда беше титлата за най-добър език за програмиране за започване на кариера. Планирано е данните да се използват за обучение на специалисти. Спечелена победа АЛГОЛ-68, но той остана малко известен, а за популярност не може да се говори. Създаден е специално за участие в конкурса Паскал, разработен от Никлаус Вирт. Езикът е много достъпен, удобен и съчетава много мощни инструменти за структуриране на информация. Въпреки първоначалното развитие с цел обучение на студенти, Паскал стана широко разпространен и активно се развива. Дори днес той е един от най-добрите и известни езици за програмиране. Създаден е за обучение на децата в училищата Лого, стоеше в началото Самуел Пайперт. Предимства: лекота на работа и изобилие от възможности. Простият език BASIC започна да се преподава в училищата; компютъркато директен диалог. Времето не е повлияло по никакъв начин на тази област; BASIC все още е най-лесният език за започване на изучаване на повечето общи области на програмиране. Създаване на езика CРазвитието на възможностите на изчислителното оборудване доведе до необходимостта от писане на интензивни програми за управление компютър. Това място с право беше заето от езика C, който започна да се използва активно през 70-те години. Ясно предимство на езика е неговата гъвкавост. Той е по-добър от Pascal поради своята вложена способност да си сътрудничи с различни машинни инструкции и подходящи части от паметта. C се използва навсякъде като инструментален език за писане на операционни платформи, устройства за превод, бази данни и други приложни системни задачи. няма ясен фокус, той е подходящ за много задачи поради своята ефективност, лекота на прехвърляне и икономично потребление на ресурси. По често Siскоростта на обработка на данни е сравнима с Асемблерпроизводителността на програмите на двата езика ще бъде приблизително еднаква. Малкият език съдържа много сила. Пролог и АдаВъвеждането на функционалното програмиране неизбежно доведе до създаването на Prolog. Задачите на езика бяха сведени до анализ и взаимодействие с човешките езици. Логиката на приложението е формална, оптимална е за автоматично решаване на задачи и теореми. Едва през 80-те години на миналия век е разработен езикът Ada. Той разширява класическото разбиране и свойства на езиците от периода. Ada може да решава проблеми в реално време и да симулира независими решения. КласификацияДнес са разработени класификации на езиците според нивото на работа; това разпределение е най-често срещаното. Има 3 основни нива:
Според друга класификация езиците се разделят на:
Насоки на развитиеКомпютърните науки в съвременния свят се развиват в 3 ключови направления:
Има езици за писане на скриптове, известните са Rexx, Tcl, Perl и Python, както и shell езици на Unix системи. Те разработват индивидуален стил на кодиране, който се различава от добре познатия принцип на програмиране на системно ниво. Те не се използват за създаване на приложения на по-ниско ниво, а по-скоро за комбиниране на различни компоненти от различни езици, които съставляват набор от отделни функции. Те започнаха да се развиват най-активно с разпространението на Интернет, поради което скриптовите езици започнаха да се използват широко. Най-често се използва за създаване на скриптове Perl, и за Уеб частие популярен JavaScript. Kasper Beyer „Кратка напълно точна история на езиците за програмиране“. 1800Джоузеф Мари Жакард обучава стан да чете перфокарти и по този начин създава първото многонишково устройство за обработка на данни. Изобретението му беше посрещнато враждебно от тъкачите на коприна, които предвидиха раждането на Skynet. 1842Ада Лавлейс се отегчи, докато преследваше благородните си занимания. Тя скицира в тетрадка това, което по-късно ще стане известно като първата публикувана компютърна програма. Единственото неудобство беше, че компютърът все още не беше изобретен. 1936Алън Тюринг измисля всичко, но това не го оправдава в очите на британски съд, който го осъжда на химическа кастрация. По-късно кралицата го помилва, но, за съжаление, той отдавна беше мъртъв по това време. 1957John Backus създава FORTRAN, първият език, използван от истински програмисти. 1959Грейс Хопър изобретява първия индустриално ориентиран език за програмиране и го нарича „общ бизнес ориентиран език“ или накратко COBOL. 1964Джон Джордж Кемени и Томас Курц решават, че програмирането е твърде трудно и трябва да се върнат към основите. Те наричат своя език за програмиране BASIC. 1970Никлаус Вирт разработва Паскал. Това е един от няколкото езика, на които той участва в създаванетод Вирт: Той обичаше да създава езици. Той също така формулира закона на Вирт, който обезсмисля закона на Мур, тъй като разработчиците го правятИ създават толкова раздути програми, че дори мейнфреймите не могат да се справят с тях. Това по-късно ще бъде доказано чрез изобретяването на Electron.js. 1972Денис Ричи се отегчава от работата си в Bell Labs и решава да създаде C с неговите фигурни скоби и проектът има огромен успех.Впоследствие той добави грешки в сегментирането и други удобни за разработчиците функции, за да подобри производителността. Тъй като му оставаха още няколко часа, той и неговите приятели от Bell Labs решиха да създадат примерна програма, за да демонстрират езика C, така че създадоха операционна система, наречена Unix. 1980Алън Къртис Кей изобретява обектно-ориентираното програмиране и го нарича Smalltalk. В Smalltalk всичко е обект, дори обектът е обект. 1987Лари Уол, с неговия опит в религиозната област, става проповедник и то неговд та доктрина прави Perl. 1983Жан Дейвид Ишбиа забеляза, че програмата на Ада Лавлейс така и не стартира и реши да създаде език и да го кръсти на нейно име (Ада). Но езикът също не тръгва. 1986Брад Кокс и Том Лав решиха да направят нечетлива версия на C, базирана на Smalltalk. Нарекоха го Objective-C, но никой не може да разбере неговия синтаксис. 1983Björn Stroustrup се връща в бъдещето и забелязва, че езикът C изискватвърде малко време за компилация. Той добавя всяка функция, за която може да се сети, към езика и го нарича C++. Програмистите по целия свят са съгласни, давайки им брилянтно извинение да гледат видеоклипове с котки и да четат xkcd на работа. 1991Гуидо ван Росум не харесва фигурни скоби, затова изобретява . При избора на синтаксиса на езика авторът се е вдъхновил от Монти Пайтън и неговия летящ цирк. 1993Робърт Йерусалимски и неговите приятели решават, че имат нужда от местен, бразилски скриптов език. IN По време на локализацията беше направена грешка, която накара индексите да започнат да броят от 1 вместо от 0.Езикът също се наричаше Lua. 1994Размус Лердорф създава шаблонна машина за своите собствени CGI скриптове за начална страница и пуска нейните dot файлове в Интернет. Светът решава да използва тези dot файлове навсякъде и Rasmus, обезумял, добавя някои допълнителни обвързвания към базата данни към тях и нарича резултата RHP. 1995Юкихиро Мацумото не беше много щастлив и забеляза, че другите програмисти също бяха недоволни. Той създава Ruby, за да ги направи щастливи. След създаването на Ruby, „Matz“ е щастлив, Ruby общността е щастлива, всички са щастливи. 1995Брендън Айх си взема почивен ден, за да разработи езика, който ще контролира всеки уеб браузър в света и евентуално Skynet. Първо той отиде в Netscape и каза, че езикът се нарича LiveScript, но по време на прегледа на кода Java придоби популярност, така чебеше решено използвайте фигурни скоби и преименувайте езика на JavaScript. Оказа се, че Java е търговска марка, което може да доведе до проблеми, така че JavaScript по-късно беше преименуван на , но все още се нарича със старото име. 1996Джеймс Гослинг изобретява Java, първият наистина многословен обектно-ориентиран език за програмиране, където моделите на проектиране имат предимство пред прагматизма. 2001Anders Hejlsberg преоткрива Java и нарича езика C#, защото програмирането на C изглежда по-готино от програмирането на Java. Всички харесват новата версия на Java, защото е напълно различна от Java. 2005David Heinemeier Hansson създава уеб рамка, наречена по-късно Ruby on Rails. Хората забравят, че това са две различни неща. 2006Джон Резиг пише помощна библиотека на JavaScript. Всички смятат, че това е език и правят кариера от копиране на jQuery код от Интернет. 2009Кен Томпсън и Роб Пайк решават да създадат език, подобен на C, но по-продаваем, с повече инструменти за сигурност и Gophers като талисмани. Те наричат този език Go, решават да го отворят и започват да продават маркови наколенки и каски Gopher. 2010Graydon Hoare също иска да създаде език, подобен на C. Той го нарича Rust. Всички изискват незабавно всяко парче от техния софтуер да бъде пренаписано на Rust. Грейдън иска нещо по-лъскаво и започва да работи върху Swift за Apple. 2012Anders Hejlsberg иска да напише C# в уеб браузъри. Той създава TypeScript, който по същество е JavaScript с повече Java. 2013Джереми Ашкенас иска да бъде щастлив като разработчиците на Ruby, затова създава CoffeeScript, който се превежда на JavaScript, но прилича повече на Ruby. Джеръми никога не е станал толкова истински щастлив, колкото Матц и разработчиците на Ruby. 2014Крис Латнър създава Swift, чиято основна цел не е да бъде Objective-C. В крайна сметка този език прилича на Java. Позволете ми да подчертая някои общи тенденции в развитието на езиците за програмиране. Проницателният читател сигурно отдавна се е досетил какво ще кажа. Езиците се развиват към все по-голяма и по-голяма абстракция. И това е придружено от спад на ефективността. Въпрос: заслужава ли си абстракцията? Отговор: заслужава си. Заслужава си, тъй като повишаването на нивото на абстракция води до повишаване на нивото на надеждност на програмирането. Ниската ефективност може да се пребори чрез изграждане на по-бързи компютри. Ако изискванията за памет са твърде високи, можете да увеличите размера на паметта. Това, разбира се, отнема време и пари, но може да бъде решено. Но има само един начин за справяне с грешките в програмите: те трябва да бъдат коригирани. Или още по-добре, не го правете. Още по-добре, направете възможно най-трудно ангажирането им. И точно към това са насочени всички изследвания в областта на езиците за програмиране. И трябва да се примирите със загубата на ефективност. Целта на този преглед беше да се опита да даде на читателя представа за разнообразието от съществуващи езици за програмиране. Сред програмистите често има мнение за „универсалната приложимост“ на даден език (C, C++, Pascal и др.). Това мнение възниква поради няколко причини: липса на информация, навик, инертност на мисленето. Опитах се леко да компенсирам първия фактор. За останалото мога само да кажа, че един истински професионалист трябва непрекъснато да се стреми да повишава професионалната си квалификация. И за това не трябва да се страхувате да експериментирате. И какво, ако всички около вас пишат на C/C++/VB/Pascal/Perl/Java/… (подчертайте, ако е подходящо)? Защо не опитате нещо ново? Ами ако това се окаже по-ефективно? Разбира се, преди да започнете да използвате нов език, трябва внимателно да проучите всичките му характеристики, включително наличието на ефективна реализация, възможността за взаимодействие със съществуващи модули и т.н., и едва след това да вземете решение. Разбира се, винаги има риск да тръгнеш по грешния път, но... Не греши само този, който не прави нищо. И още нещо. Чувал съм и понякога съм участвал в дискусии като „език А е по-добър от език Б“. Надявам се, че след като прочетат този преглед, мнозина ще се убедят в безсмислието на подобни спорове. Максимумът, който може да се обсъжда, са предимствата на един език пред друг при решаване на конкретен проблем при определени условия. Това е мястото, където понякога наистина има за какво да се спори. И решението понякога изобщо не е очевидно. Но да се спори „като цяло“ е очевидна глупост. Тази статия беше замислена като отговор на онези, които викат „език X ТРЯБВА ДА УМРЕ“. Надявам се отговорът да се е оказал доста адекватен и убедителен. Надявам се също статията да има освен полемична и образователна стойност. |
Прочетете: |
---|
Нов
- Защо издателите не могат да редактират всички страници
- В BIOS няма зареждане от флаш устройство - как да го конфигурирам?
- Pandao промо кодове за точки
- Опасен ransomware вирус се разпространява масово в интернет
- Инсталиране на допълнителна RAM памет
- Какво да направите, ако слушалките не възпроизвеждат звук на лаптоп
- Справочник диоди Мощни изправителни диоди 220V
- Възстановяване на Microsoft Word за Mac в OS X Yosemite Word не стартира на mac os sierra
- Как да нулирате паролата на администратора на Mac OS X без инсталационен диск
- Настройване на Shadow Defender