← All posts tagged программирование

Пользователь @mismatch в посте #2821168 порекомендовал статью smashcompany.com о недостатках ООП. Поскольку она на буржуйском, а я не силён в их мове, читаю через Яндекс.Переводчик. Понятно, что когда непонятен оригинал, смотрю в перевод, когда непонятен перевод (что тоже бывает часто) — смотрю в оригинал. В общем, Яндекс переводит state как государство. Порой получается забавно:

Whether you use an OOP language or a functional language, your enemy is state, …
Используете ли вы ООП язык или функциональный язык, твой враг-государство, а цель любого вида данных-скрытие является ограничение способов, как государство может изменить. Джон Баркер резюмирует врага:
Государство-не друг, государство-твой враг. Изменения в государственные программы сделать сложнее рассуждать о том, сложнее тестировать и отлаживать труднее.

Такой вот забавный анархизм (или либертарианство?).

Посмотрел на Visual C++ Express 2010 и Visual Studio Express 2012. Глубоко не копал, из отличий: в 2012-й есть искаропки юнит-тесты, что радует, и компиляторы для amd64, что радует тоже. В 2010-й этого нет. Хотя я всё равно чаще всего буду писать в Виме и компилировать из командной строки. За amd64 спасибо.

Между прочим, программы, написанные на C и WinAPI, кроссплатформенны и переносимы между несколькими очень разными ОС… разработанными компанией Майкрософт. А именно: между 9x/ME, NT и CE. Рассмотрим их по порядку.
Первое — однопользовательская, поверх DOS’а, развитие идей 16-разрядных виндов. Уже давно сдохло (в 2005 году ещё).
Второе — вполне современная ОС, работает на разном оборудовании (сейчас на x86, amd64, Itanium, ARM, раньше поддерживались ещё Alpha, MIPS и PowerPC).
Третье — ОС реального времени, работает во всяких мобильниках и навигаторах (Windows Phone до версии 7.x включительно была основана на ядре Windows CE).
Таким образом, можно писать программы на C и WinAPI, которые можно скомпилировать под три разных ядра и они будут работать. Более того, между 9x/ME и NT для x86 есть и совместимость на уровне бинарных файлов — одни и те же приложения могут работать на разных ОС без перекомпиляции. А ещё можно писать и Win16-совместимые программы. Можно, но не нужно.

В голой (сразу после установки) Винде можно программировать.
Во всех Виндах — писать батники. В маздайках (9x/ME) — под command.com, в NT — под cmd.exe. В последних синтаксис помощнее и поинтереснее.
Начиная с Windows 98 можно программировать под WSH (Windows Scripting Host), т.е. на языках JScript (диалект JavaScript) и VBScript (Visual Basic-подобный синтаксис).
Начиная с Windows XP можно программировать на C#, компилятор последнего входит в предустановленный .NET Framework (лежит в %WINDIR%\Microsoft.NET\Framework\…). В более ранних версиях Винды фреймворк надо ставить отдельно.
Начиная с Windows 7 — на PowerShell. В более ранние версии Винды тоже ставится отдельно.

Натягивая сову на глобус.
В Windows 95 OSR2 есть IE3, поддерживающий JavaScript, т.е. можно писать интерактивные web-страницы.
В MS-DOS начиная с 5.0 присутствовал интерпретатор QBasic (не путать с компилятором QuickBASIC).

Если что-то упустил, поправьте.

Читаю книгу Вирта и Гуткнехта «Разработка операционной системы и компилятора. Проект Оберон». Система любопытная, но по стилю код ужасен. Если бы мне такой код показал студент бы, я бы его попросил переформатировать.