За начало дефинирам “съвремието” като периода от създаването първия модерен компютър, използващ електричество, през 40-те години на миналия век, до днешни дни. Разбира се, програми, в смисъла на последователни инструкции изпълнявани от автомат, са съществували много преди това:

  • Жозеф Мари Жакард (1752 - 1834г.) , френски тъкач, изобретява автоматизиран стан, чиито инструкции се подават чрез перфокарти
  • Чарлз Бабидж (1791 - 1871г.), британски математик и инженер, създател на първата сметачна машина, вдъхновена от Жакард
  • Ада Лъвлейс (1815 - 1852г.), английска математичка, пише алгоритъм за аналитичната машина на Чарлз Бабидж, която наподобява компютър, считан за първата програма

Преди да започнем да разглеждаме съвременните текстови редактори и софтуера, който ги наследява, ще трябва да минем през ерата на перфокартите. Защо? Много просто! Как бихме написали кода за програма за писане на код, като няма в какво да напишем кода?

Подобно при машините на Жакард, перфокартите са били физически носител с предварително зададени команди под формата на перфорации в специални участъци на бланки.

перфокарта с код на FORTRAN

Arnold Reinhold, CC BY-SA 2.5, via Wikimedia Commons

Създаването на програма по този начин е времеемко и често изисква двама специалисти - програмист и оператор за перфориране. Грешки при създаване на перфокартата водели до започване на процеса отново. Информацията, запазена във всяка перфокарта, е ограничена от броя редове и колони на бланката, затова по-сложни програми са налагали създаването на тестета от перфокарти.

тесте с перфокарти

ArnoldReinhold, CC BY-SA 3.0, via Wikimedia Commons

червената линия по диагонала идва на помощ, ако тестето бъде изтървано и всички перфокарти размесени 😅

През 50-те години на миналия век, отново заимствано от машини в миналото (телетайп, телепринтер), се появява първият интерфейс, чрез който потребител директно може да задава команди на компютъра - команден ред. Наречен така, защото работи само върху един ред, приема символи, които биват поставени на следващата позиция и има само един специал бутон: Enter, чрез който може да се даде сигнал на комютъра, че сме готови с командата. По-късно телепринтерът се заменя от клавиатура и екран, които емулират функционалността на му.

телепринтер

Една от първите програми наречени “текстови редактори” е QED (quick editor) разработена от Бътлер Лампсон и Л. Питър Дойч. Въпреки че, QED е предназначен за компютър управляван чрез телепринтер, във времена, в които CTR мониторите навлизат в употреба, той оказва силно влияние върху разработката на ed - редови текстов редактор, който е една от първите части на операционната система Unix.

С появата на монитори, които могат да променят показваното съдържание без да изискват смяната на физически елементи като хартия, перфокарти, глави, магнитни ленти и др., се създават модални многоредови текстови редактори, които изпълват целия екран. Този тип редактори често са имали допълнителна функционалност, която помага за въвеждането на текст като: преместване на позиция на курсора, изтриване на символ, вмъкване на ред и др.

През 1969г. Уилфред Хансен създава редактор за код, поддържащ code completion (дописване на код) наречен Emily, който не позволява, за разлика от съвремените редактори, създаването на синтактично грешни програми. А през 1982г. се създава и първата система за оцветяване на код (syntax highlighting), целяща да направи писането на програми по-лесно за начинаещи, главно деца.

С годините начинът, по който се създава софтуер се усъвършенства, като в днешни дни имаме изчерпателни интегрирани среди за разработка, които:

  • оцветяват кода ни
  • допълват го
  • статично го анализират, предотвратявайки логически и синтактични грешки
  • изпълняват и проследяват изпълнението
  • форматират, така че стилът да бъде консистентен с останалите хора в екипа.

jet brains ide


Източници