<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>
<title>FreeSource - НачатыеПроекты/ЗаготовкиСтатей/Программирование/НаЧёмПрограммировать</title>
<link>http://freesource.info/wiki/НачатыеПроекты/ЗаготовкиСтатей/Программирование/НаЧёмПрограммировать</link>
<description>History/revisions of FreeSource/НачатыеПроекты/ЗаготовкиСтатей/Программирование/НаЧёмПрограммировать</description>
<language>en-us</language>
<item>
<title>2006-09-15 12:06:37</title>
<link>http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'/show?time=2006-09-15+12%3A06%3A37</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a name=".nachatyeproekty.zagotovkistatejj.programmirovanie.nachjomprogrammirovat_" href="http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'&amp;" class="">/Начатые&amp;nbsp;Проекты&amp;nbsp;/&amp;nbsp;Заготовки&amp;nbsp;Статей&amp;nbsp;/&amp;nbsp;Программирование&amp;nbsp;/&amp;nbsp;На&amp;nbsp;Чём&amp;nbsp;Программировать&lt;/a> за &lt;a href="http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'?time=2006-09-15+12%3A06%3A37">2006-09-15 12:06:37&lt;/a> и &lt;a href="http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'">2007-08-30 09:13:14&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Но&amp;nbsp;это всё _сейчас_ имеет смысл только в&amp;nbsp;mission critical приложениях. Просто потому, что&amp;nbsp;хороших программистов на&amp;nbsp;языках отличных от&amp;nbsp;C   и&amp;nbsp;жабы за&amp;nbsp;разумные деньги найти сложно, и&amp;nbsp;они _потребуют_ великолепной зарплаты, соц&amp;nbsp;программ, хорошего менеджмента. Далеко не&amp;nbsp;всегда руководство просто достаточно квалифицировано, чтобы создать такие тепличные условия (дело не&amp;nbsp;в деньгах даже, программисты за&amp;nbsp;&lt;span class="nobr">2&amp;ndash;3&lt;/span>k$ реально дешевле программистов за&amp;nbsp;5&lt;span class="nobr">00&amp;ndash;100&lt;/span>0$).&lt;br />
логика &amp;mdash; зависит от&amp;nbsp;её объёмов, в&amp;nbsp;порядке убывания: OCaml, Tcl, Java, C&amp;nbsp;&lt;br />
вещи, требующие максимальной производительности &amp;mdash; OCaml, C,   Java&lt;br />
Третий недостаток &amp;mdash; невозможность ни&amp;nbsp;в С, ни&amp;nbsp;в &lt;!--notypo-->С  &lt;!--/notypo--> сделать по-настоящему хорошую сборку мусора. Собственно это&amp;nbsp;одна из&amp;nbsp;причин, почему многие современные программы требует несоизмеримое задачам количество памятью: просто в&amp;nbsp;C и&amp;nbsp;&lt;!--notypo-->C  &lt;!--/notypo--> не&amp;nbsp;так уж&amp;nbsp;и легко с&amp;nbsp;ней работать.&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">Но&amp;nbsp;это всё _сейчас_ имеет смысл только в&amp;nbsp;mission critical приложениях. Просто потому, что&amp;nbsp;хороших программистов на&amp;nbsp;языках отличных от&amp;nbsp;C++ и&amp;nbsp;жабы за&amp;nbsp;разумные деньги найти сложно, и&amp;nbsp;они _потребуют_ великолепной зарплаты, соц&amp;nbsp;программ, хорошего менеджмента. Далеко не&amp;nbsp;всегда руководство просто достаточно квалифицировано, чтобы создать такие тепличные условия (дело не&amp;nbsp;в деньгах даже, программисты за&amp;nbsp;&lt;span class="nobr">2&amp;ndash;3&lt;/span>k$ реально дешевле программистов за&amp;nbsp;5&lt;span class="nobr">00&amp;ndash;100&lt;/span>0$).&lt;br />
логика &amp;mdash; зависит от&amp;nbsp;её объёмов, в&amp;nbsp;порядке убывания: OCaml, Tcl, Java, C++&lt;br />
вещи, требующие максимальной производительности &amp;mdash; OCaml, C++, Java&lt;br />
Третий недостаток &amp;mdash; невозможность ни&amp;nbsp;в С, ни&amp;nbsp;в &lt;!--notypo-->С++&lt;!--/notypo--> сделать по-настоящему хорошую сборку мусора. Собственно это&amp;nbsp;одна из&amp;nbsp;причин, почему многие современные программы требует несоизмеримое задачам количество памятью: просто в&amp;nbsp;C и&amp;nbsp;&lt;!--notypo-->C++&lt;!--/notypo--> не&amp;nbsp;так уж&amp;nbsp;и легко с&amp;nbsp;ней работать.&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2004-10-27 22:12:49</title>
<link>http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'/show?time=2004-10-27+22%3A12%3A49</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'&amp;" class="">/Начатые&amp;nbsp;Проекты&amp;nbsp;/&amp;nbsp;Заготовки&amp;nbsp;Статей&amp;nbsp;/&amp;nbsp;Программирование&amp;nbsp;/&amp;nbsp;На&amp;nbsp;Чём&amp;nbsp;Программировать&lt;/a> за &lt;a href="http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'?time=2004-10-27+22%3A12%3A49">2004-10-27 22:12:49&lt;/a> и &lt;a href="http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'?time=2006-09-15+12%3A06%3A37">2006-09-15 12:06:37&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;ol type="3">&lt;li> каждый модуль либо пишется своими силами, либо заказывается у&amp;nbsp;кого-то сильно более крутого (если модуль критичен по&amp;nbsp;производительности)&lt;/li>&lt;/ol>
Третий недостаток &amp;mdash; невозможность ни&amp;nbsp;в С, ни&amp;nbsp;в &lt;!--notypo-->С++&lt;!--/notypo--> сделать по-настоящему хорошую сборку мусора. Собственно это&amp;nbsp;одна из&amp;nbsp;причин, почему многие современные программы требует несоизмеримое задачам количество памятью: просто в&amp;nbsp;C и&amp;nbsp;&lt;!--notypo-->C++&lt;!--/notypo--> не&amp;nbsp;так уж&amp;nbsp;и легко с&amp;nbsp;ней работать.&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;ol type="3">&lt;li> каждый модуль либо пишется своими силами, либо заказывается у&amp;nbsp;кого-то&lt;/li>&lt;/ol>
сильно более крутого (если модуль критичен по&amp;nbsp;производительности)&lt;br />
Третий недостаток &amp;mdash; невозможность ни&amp;nbsp;в С, ни&amp;nbsp;в С++ сделать по-настоящему хорошую сборку мусора. Собственно это&amp;nbsp;одна из&amp;nbsp;причин, почему многие современные программы требует несоизмеримое задачам количество памятью: просто в&amp;nbsp;C и&amp;nbsp;C++ не&amp;nbsp;так уж&amp;nbsp;и легко с&amp;nbsp;ней работать.&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2004-10-27 22:09:42</title>
<link>http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'/show?time=2004-10-27+22%3A09%3A42</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'&amp;" class="">/Начатые&amp;nbsp;Проекты&amp;nbsp;/&amp;nbsp;Заготовки&amp;nbsp;Статей&amp;nbsp;/&amp;nbsp;Программирование&amp;nbsp;/&amp;nbsp;На&amp;nbsp;Чём&amp;nbsp;Программировать&lt;/a> за &lt;a href="http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'?time=2004-10-27+22%3A09%3A42">2004-10-27 22:09:42&lt;/a> и &lt;a href="http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'?time=2004-10-27+22%3A12%3A49">2004-10-27 22:12:49&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;a name="h159-1">&lt;/a>&lt;h2>Недостатки C&amp;nbsp;с точки зрения прикладного программирования&lt;/h2>
Самый главный недостаток C&amp;nbsp;&amp;mdash; ASCIIZ-строки:&lt;br />
 Второй недостаток &amp;mdash; адресная арифметика. Это&amp;nbsp;мощнейший инструмент для&amp;nbsp;специалиста (коих по&amp;nbsp;сравнению с&amp;nbsp;общим количеством программистов на&amp;nbsp;C в&amp;nbsp;лучше случвае 1:100), а&amp;nbsp;для человека, который не&amp;nbsp;понимает до&amp;nbsp;конца как&amp;nbsp;это работает, это&amp;nbsp;хороший способ сделать ненадёжную программу.&lt;br />
Третий недостаток &amp;mdash; невозможность ни&amp;nbsp;в С, ни&amp;nbsp;в С++ сделать по-настоящему хорошую сборку мусора. Собственно это&amp;nbsp;одна из&amp;nbsp;причин, почему многие современные программы требует несоизмеримое задачам количество памятью: просто в&amp;nbsp;C и&amp;nbsp;C++ не&amp;nbsp;так уж&amp;nbsp;и легко с&amp;nbsp;ней работать.&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;a name="h159-1">&lt;/a>&lt;h2>Недостатки C&lt;/h2>
Самый главный недостаток C&amp;nbsp;&amp;mdash; ASCIIZ-строки.&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2004-10-27 22:06:38</title>
<link>http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'/show?time=2004-10-27+22%3A06%3A38</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'&amp;" class="">/Начатые&amp;nbsp;Проекты&amp;nbsp;/&amp;nbsp;Заготовки&amp;nbsp;Статей&amp;nbsp;/&amp;nbsp;Программирование&amp;nbsp;/&amp;nbsp;На&amp;nbsp;Чём&amp;nbsp;Программировать&lt;/a> за &lt;a href="http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'?time=2004-10-27+22%3A06%3A38">2004-10-27 22:06:38&lt;/a> и &lt;a href="http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'?time=2004-10-27+22%3A09%3A42">2004-10-27 22:09:42&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Если совсем серьёзно, то&amp;nbsp;при программировании по&amp;nbsp;Windows лучше всего использовать любой. NET&amp;nbsp;язык, а&amp;nbsp;при портабельном программировании либо Java (из распространённых), либо, что&amp;nbsp;гораздо лучше, &lt;a href="http://www.tcltk.ru" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />Tcl&lt;/a>.&lt;br />
Ну&amp;nbsp;и светятся в&amp;nbsp;багтраке с&amp;nbsp;завидной периодичностью. И&amp;nbsp;будут светиться всегда. Просто потому, что&amp;nbsp;при программировании на&amp;nbsp;C нужно иметь очень высокую квалификацию, и&amp;nbsp;требуемая квалификация растёт экспоненциально с&amp;nbsp;ростом программы. Притом затраты на&amp;nbsp;организацию совместной разработки тоже растут нелинейно.&lt;br />
Кстати апач, mysql и&amp;nbsp;squid не&amp;nbsp;совсем прикладные программы всё-таки, и&amp;nbsp;при их&amp;nbsp;написании вставки кода на&amp;nbsp;си отнюдь не&amp;nbsp;помешают (особенно это&amp;nbsp;касается апача и&amp;nbsp;сквида).&lt;br />
SQL-сервер можно и&amp;nbsp;нужно писать на&amp;nbsp;языках вроде &lt;a href="http://www.ocaml.ru" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />OCaml&lt;/a>, ибо&amp;nbsp;бОльшая часть нагрузки на&amp;nbsp;процессор это:&lt;br />
&lt;ul>&lt;li> парсер;
&lt;/li>&lt;li> оптимизатор;
&lt;/li>&lt;li> вычисление функций;
&lt;/li>&lt;/ul>&lt;ol type="1">&lt;li> быстрее;
&lt;/li>&lt;li> надёжнее;
&lt;/li>&lt;li> менее требовательным к&amp;nbsp;памяти;
&lt;/li>&lt;li>легче расширяемым;&lt;/li>&lt;/ol>
Но&amp;nbsp;это всё _сейчас_ имеет смысл только в&amp;nbsp;mission critical приложениях. Просто потому, что&amp;nbsp;хороших программистов на&amp;nbsp;языках отличных от&amp;nbsp;C++ и&amp;nbsp;жабы за&amp;nbsp;разумные деньги найти сложно, и&amp;nbsp;они _потребуют_ великолепной зарплаты, соц&amp;nbsp;программ, хорошего менеджмента. Далеко не&amp;nbsp;всегда руководство просто достаточно квалифицировано, чтобы создать такие тепличные условия (дело не&amp;nbsp;в деньгах даже, программисты за&amp;nbsp;&lt;span class="nobr">2&amp;ndash;3&lt;/span>k$ реально дешевле программистов за&amp;nbsp;5&lt;span class="nobr">00&amp;ndash;100&lt;/span>0$).&lt;br />
&lt;ol type="1">&lt;li> делается декомпозиция программы на&amp;nbsp;_модули_ (ООП в&amp;nbsp;жопу)
&lt;/li>&lt;li> для&amp;nbsp;каждого модуля продумывается на&amp;nbsp;каком языке его&amp;nbsp;стоит писать
&lt;/li>&lt;li> каждый модуль либо пишется своими силами, либо заказывается у&amp;nbsp;кого-то&lt;/li>&lt;/ol>
Если код&amp;nbsp;можно не&amp;nbsp;писать, а&amp;nbsp;лицензировать &amp;mdash; он&amp;nbsp;лицензируется. Если код&amp;nbsp;можно не&amp;nbsp;писать, а&amp;nbsp;взять готовую библиотеку и&amp;nbsp;написать вокруг обёртку &amp;mdash; так&amp;nbsp;и&amp;nbsp;делается. Если код&amp;nbsp;не&amp;nbsp;является тем, ради которого покупается написаный продукт &amp;mdash; код&amp;nbsp;продвигается в&amp;nbsp;виде правок к&amp;nbsp;используемым библиотекам (пусть другие люди, которые лучше знают эту&amp;nbsp;сферу, занимаются его&amp;nbsp;поддержкой).&lt;br />
В&amp;nbsp;случае свободных программ не&amp;nbsp;зазорно использовать в&amp;nbsp;качестве _расширений_ проприетарные библиотеки (IMHO). Например написать патч к&amp;nbsp;mplayer, который бы&amp;nbsp;использовал Intel'овские примитивы для&amp;nbsp;DSP _если они&amp;nbsp;есть у&amp;nbsp;пользователя_ было бы&amp;nbsp;полезно (это как&amp;nbsp;пример).&lt;br />
Ну&amp;nbsp;и следует понимать, что&amp;nbsp;написаное выше есть всего лишь результат _моего_ весьма небольшого опыта в&amp;nbsp;IT &amp;mdash; я&amp;nbsp;знаю меньше десятка языков программирования и&amp;nbsp;практически не&amp;nbsp;владею функциональным программированием, а&amp;nbsp;значит уже&amp;nbsp;большую часть возможностей попросту не&amp;nbsp;вижу. Посему каждый раз&amp;nbsp;надо внимательно обследовать сферу, для&amp;nbsp;которой пишется программа, и&amp;nbsp;искать наилучший инструмент. После чего садиться, и&amp;nbsp;изучать этот инструмент.&lt;br />
Скажем пример &amp;mdash; пишется приложение. Приложение должно быть _очень_ масштабируемых (грубо говоря от&amp;nbsp;сотового телефона до&amp;nbsp;мейнфрейма). Какой язык будет выбран? Java. Просто потому что&amp;nbsp;это &amp;laquo;политика партии&amp;raquo; и&amp;nbsp;в этом случае можно получить больше поддержки, больше кода будет написано сторонними разработчиками.&lt;br />
Или&amp;nbsp;смотреть что&amp;nbsp;нужно пользователю. Скажем _сейчас_ производительность находится чуть ли&amp;nbsp;не на&amp;nbsp;последнем месте по&amp;nbsp;важности, а&amp;nbsp;_безопасность_ на&amp;nbsp;первом. Поэтому выбирая интерпретируемые языки программирования, или&amp;nbsp;языки вроде &lt;a href="http://www.ocaml.ru/" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />OCaml&lt;/a>, где&amp;nbsp;написание кривого кода несколько усложняется, можно получить преимущество на&amp;nbsp;рынке за&amp;nbsp;счёт большей надёжности и&amp;nbsp;более быстрого добавления новой функциональности.&lt;br />
&lt;ol type="1">&lt;li> Tcl&amp;nbsp;(обязательно)
&lt;/li>&lt;li> OCaml (мозги несколько сдвигает, всё не&amp;nbsp;могу найти время чтобы полностью с&amp;nbsp;ним разобраться, но&amp;nbsp;уже даже теоретическое знание изменило стиль написания кода на&amp;nbsp;других языках)
&lt;/li>&lt;li> Java (придётся)
&lt;/li>&lt;li> Perl (знать надо, но&amp;nbsp;лучше стараться на&amp;nbsp;нём не&amp;nbsp;писать, изучать лучше после вышеперечисленность, мозги портит почти как&amp;nbsp;бейсик, по&amp;nbsp;себе сужу)&lt;/li>&lt;/ol>
Стоит обратить внимание на&amp;nbsp;Lisp &amp;mdash; так&amp;nbsp;говорят умные люди, которым я&amp;nbsp;доверяю. Времени пока не&amp;nbsp;нахожу.&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">Если совсем серьёзно, то&amp;nbsp;при программировании по&amp;nbsp;Windows лучше всего&lt;br />
использовать любой. NET&amp;nbsp;язык, а&amp;nbsp;при портабельном программировании либо&lt;br />
Java (из распространённых), либо, что&amp;nbsp;гораздо лучше, &lt;a href="http://www.tcltk.ru" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />Tcl&lt;/a>.&lt;br />
Ну&amp;nbsp;и светятся в&amp;nbsp;багтраке с&amp;nbsp;завидной периодичностью. И&amp;nbsp;будут светиться&lt;br />
_всегда_. Просто потому, что&amp;nbsp;при программировании на&amp;nbsp;C нужно иметь очень&lt;br />
высокую квалификацию, и&amp;nbsp;требуемая квалификация растёт экспоненциально с&lt;br />
ростом программы. Притом затраты на&amp;nbsp;организацию совместной разработки тоже&lt;br />
растут нелинейно.&lt;br />
Кстати апач, mysql и&amp;nbsp;squid не&amp;nbsp;совсем прикладные программы всё-таки, и&amp;nbsp;при&lt;br />
их&amp;nbsp;написании вставки кода на&amp;nbsp;си отнюдь не&amp;nbsp;помешают (особенно это&amp;nbsp;касается&lt;br />
апача и&amp;nbsp;сквида).&lt;br />
SQL-сервер можно и&amp;nbsp;нужно писать на&amp;nbsp;языках вроде &lt;a href="http://www.ocaml.ru" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />OCaml&lt;/a>, ибо&amp;nbsp;бОльшая часть&lt;br />
нагрузки на&amp;nbsp;процессор это:&lt;br />
 &amp;ndash; парсер&lt;br />
 &amp;ndash; оптимизатор&lt;br />
 &amp;ndash; вычисление функций&lt;br />
а) быстрее;&lt;br />
б) надёжнее;&lt;br />
в) менее требовательным к&amp;nbsp;памяти;&lt;br />
г) легче расширяемым;&lt;br />
Но&amp;nbsp;это всё _сейчас_ имеет смысл только в&amp;nbsp;mission critical приложениях.&lt;br />
Просто потому, что&amp;nbsp;хороших программистов на&amp;nbsp;языках отличных от&amp;nbsp;C++ и&amp;nbsp;жабы&lt;br />
за&amp;nbsp;разумные деньги найти сложно, и&amp;nbsp;они _потребуют_ великолепной зарплаты,&lt;br />
соц&amp;nbsp;программ, хорошего менеджмента. Далеко не&amp;nbsp;всегда руководство просто&lt;br />
достаточно квалифицировано, чтобы создать такие тепличные условия (дело не&lt;br />
в&amp;nbsp;деньгах даже, программисты за&amp;nbsp;&lt;span class="nobr">2&amp;ndash;3&lt;/span>k$ реально дешевле программистов за&lt;br />
5&lt;span class="nobr">00&amp;ndash;100&lt;/span>0$).&lt;br />
1. делается декомпозиция программы на&amp;nbsp;_модули_ (ООП в&amp;nbsp;жопу)&lt;br />
2. для&amp;nbsp;каждого модуля продумывается на&amp;nbsp;каком языке его&amp;nbsp;стоит писать&lt;br />
3. каждый модуль либо пишется своими силами, либо заказывается у&amp;nbsp;кого-то&lt;br />
Если код&amp;nbsp;можно не&amp;nbsp;писать, а&amp;nbsp;лицензировать &amp;mdash; он&amp;nbsp;лицензируется. Если код&lt;br />
можно не&amp;nbsp;писать, а&amp;nbsp;взять готовую библиотеку и&amp;nbsp;написать вокруг обёртку --&lt;br />
так&amp;nbsp;и&amp;nbsp;делается. Если код&amp;nbsp;не&amp;nbsp;является тем, ради которого покупается&lt;br />
написаный продукт &amp;mdash; код&amp;nbsp;продвигается в&amp;nbsp;виде правок к&amp;nbsp;используемым&lt;br />
библиотекам (пусть другие люди, которые лучше знают эту&amp;nbsp;сферу, занимаются&lt;br />
его&amp;nbsp;поддержкой).&lt;br />
В&amp;nbsp;случае свободных программ не&amp;nbsp;зазорно использовать в&amp;nbsp;качестве&lt;br />
_расширений_ проприетарные библиотеки (IMHO). Например написать патч к&lt;br />
mplayer, который бы&amp;nbsp;использовал Intel'овские примитивы для&amp;nbsp;DSP _если они&lt;br />
есть у&amp;nbsp;пользователя_ было бы&amp;nbsp;полезно (это как&amp;nbsp;пример).&lt;br />
Ну&amp;nbsp;и следует понимать, что&amp;nbsp;написаное выше есть всего лишь результат&lt;br />
_моего_ весьма небольшого опыта в&amp;nbsp;IT &amp;mdash; я&amp;nbsp;знаю меньше десятка языков&lt;br />
программирования и&amp;nbsp;практически не&amp;nbsp;владею функциональным программированием,&lt;br />
а&amp;nbsp;значит уже&amp;nbsp;большую часть возможностей попросту не&amp;nbsp;вижу. Посему каждый&lt;br />
раз&amp;nbsp;надо внимательно обследовать сферу, для&amp;nbsp;которой пишется программа, и&lt;br />
искать наилучший инструмент. После чего садиться, и&amp;nbsp;изучать этот&lt;br />
инструмент.&lt;br />
Скажем пример &amp;mdash; пишется приложение. Приложение должно быть _очень_&lt;br />
масштабируемых (грубо говоря от&amp;nbsp;сотового телефона до&amp;nbsp;мейнфрейма). Какой&lt;br />
язык будет выбран? Java. Просто потому что&amp;nbsp;это &amp;laquo;политика партии&amp;raquo; и&amp;nbsp;в этом&lt;br />
случае можно получить больше поддержки, больше кода будет написано&lt;br />
сторонними разработчиками.&lt;br />
Или&amp;nbsp;смотреть что&amp;nbsp;нужно пользователю. Скажем _сейчас_ производительность&lt;br />
находится чуть ли&amp;nbsp;не на&amp;nbsp;последнем месте по&amp;nbsp;важности, а&amp;nbsp;_безопасность_ на&lt;br />
первом. Поэтому выбирая интерпретируемые языки программирования, или&lt;br />
языки вроде OCaml (где написание кривого кода несколько усложняется) можно&lt;br />
получить преимущество на&amp;nbsp;рынке за&amp;nbsp;счёт большей надёжности и&amp;nbsp;более быстрого&lt;br />
добавления новой функциональности.&lt;br />
1. Tcl&amp;nbsp;(обязательно)&lt;br />
2. OCaml (мозги несколько сдвигает, всё не&amp;nbsp;могу найти время чтобы&lt;br />
полностью с&amp;nbsp;ним разобраться, но&amp;nbsp;уже даже теоретическое знание изменило&lt;br />
стиль написания кода на&amp;nbsp;других языках)&lt;br />
3. Java (придётся)&lt;br />
4. Perl (знать надо, но&amp;nbsp;лучше стараться на&amp;nbsp;нём не&amp;nbsp;писать, изучать лучше&lt;br />
после вышеперечисленность, мозги портит почти как&amp;nbsp;бейсик, по&amp;nbsp;себе сужу)&lt;br />
Стоит обратить внимание на&amp;nbsp;Lisp &amp;mdash; так&amp;nbsp;говорят умные люди, которым я&lt;br />
доверяю. Времени пока не&amp;nbsp;нахожу.&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2004-10-25 21:08:25</title>
<link>http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'/show?time=2004-10-25+21%3A08%3A25</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'&amp;" class="">/Начатые&amp;nbsp;Проекты&amp;nbsp;/&amp;nbsp;Заготовки&amp;nbsp;Статей&amp;nbsp;/&amp;nbsp;Программирование&amp;nbsp;/&amp;nbsp;На&amp;nbsp;Чём&amp;nbsp;Программировать&lt;/a> за &lt;a href="http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'?time=2004-10-25+21%3A08%3A25">2004-10-25 21:08:25&lt;/a> и &lt;a href="http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'?time=2004-10-27+22%3A06%3A38">2004-10-27 22:06:38&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Изначально это&amp;nbsp;было одно из&amp;nbsp;моих сообщений в&amp;nbsp;рассылках ALTLinux&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">Это&amp;nbsp;одно из&amp;nbsp;моих сообщений в&amp;nbsp;рассылках ALTLinux&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2004-10-21 17:53:02</title>
<link>http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'/show?time=2004-10-21+17%3A53%3A02</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'&amp;" class="">/Начатые&amp;nbsp;Проекты&amp;nbsp;/&amp;nbsp;Заготовки&amp;nbsp;Статей&amp;nbsp;/&amp;nbsp;Программирование&amp;nbsp;/&amp;nbsp;На&amp;nbsp;Чём&amp;nbsp;Программировать&lt;/a> за &lt;a href="http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'?time=2004-10-21+17%3A53%3A02">2004-10-21 17:53:02&lt;/a> и &lt;a href="http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'?time=2004-10-25+21%3A08%3A25">2004-10-25 21:08:25&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;a name="h159-1">&lt;/a>&lt;h2>Недостатки C&lt;/h2>
Самый главный недостаток C&amp;nbsp;&amp;mdash; ASCIIZ-строки.&lt;br />
&lt;ol type="1">&lt;li> они&amp;nbsp;медленные (операция strlen для&amp;nbsp;ASCIIZ строки означает сканирование всей строки, и&amp;nbsp;сравнение каждого байта с&amp;nbsp;0, в&amp;nbsp;отличии от&amp;nbsp;строк в&amp;nbsp;Pascal, где&amp;nbsp;хранится длина строки, strcmp требует сравнение не&amp;nbsp;только символов друг-с-другом, но&amp;nbsp;и с&amp;nbsp;0, и.т.д)
&lt;/li>&lt;li> они&amp;nbsp;небезопасные: функции вроде sprintf, вместо snprintf, и&amp;nbsp;также многие другие функции являются потенциально опасными, если не&amp;nbsp;делать специальных проверок на&amp;nbsp;длину строки, об&amp;nbsp;этих проверках и&amp;nbsp;о передаче длины строки должен заботиться программист. Подавляющее количество ошибок безопасности, опубликованых в&amp;nbsp;bugtraq, так&amp;nbsp;или иначе связаны именно с&amp;nbsp;этой проблемой.
&lt;/li>&lt;/ol>&lt;div class="indent">&lt;/div>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2004-10-21 17:51:43</title>
<link>http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'/show?time=2004-10-21+17%3A51%3A43</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'&amp;" class="">/Начатые&amp;nbsp;Проекты&amp;nbsp;/&amp;nbsp;Заготовки&amp;nbsp;Статей&amp;nbsp;/&amp;nbsp;Программирование&amp;nbsp;/&amp;nbsp;На&amp;nbsp;Чём&amp;nbsp;Программировать&lt;/a> за &lt;a href="http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'?time=2004-10-21+17%3A51%3A43">2004-10-21 17:51:43&lt;/a> и &lt;a href="http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'?time=2004-10-21+17%3A53%3A02">2004-10-21 17:53:02&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Java (из распространённых), либо, что&amp;nbsp;гораздо лучше, &lt;a href="http://www.tcltk.ru" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />Tcl&lt;/a>.&lt;br />
SQL-сервер можно и&amp;nbsp;нужно писать на&amp;nbsp;языках вроде &lt;a href="http://www.ocaml.ru" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />OCaml&lt;/a>, ибо&amp;nbsp;бОльшая часть&lt;br />
написаный на&amp;nbsp;&lt;a href="http://www.ocaml.ru" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />OCaml&lt;/a>, окажется:&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">Java (из распространённых), либо, что&amp;nbsp;гораздо лучше, Tcl.&lt;br />
SQL-сервер можно и&amp;nbsp;нужно писать на&amp;nbsp;языках вроде OCaml, ибо&amp;nbsp;бОльшая часть&lt;br />
написаный на&amp;nbsp;OCaml, окажется:&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2004-08-17 14:37:49</title>
<link>http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'/show?time=2004-08-17+14%3A37%3A49</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'&amp;" class="">/Начатые&amp;nbsp;Проекты&amp;nbsp;/&amp;nbsp;Заготовки&amp;nbsp;Статей&amp;nbsp;/&amp;nbsp;Программирование&amp;nbsp;/&amp;nbsp;На&amp;nbsp;Чём&amp;nbsp;Программировать&lt;/a> за &lt;a href="http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'?time=2004-08-17+14%3A37%3A49">2004-08-17 14:37:49&lt;/a> и &lt;a href="http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'?time=2004-10-21+17%3A51%3A43">2004-10-21 17:51:43&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">SQL-сервер можно и&amp;nbsp;нужно писать на&amp;nbsp;языках вроде OCaml, ибо&amp;nbsp;бОльшая часть&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">SQL-сервер можно и&amp;nbsp;нужно писать на&amp;nbsp;язычках вроде OCaml, ибо&amp;nbsp;бОльшая часть&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2004-08-17 14:36:44</title>
<link>http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'/show?time=2004-08-17+14%3A36%3A44</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'&amp;" class="">/Начатые&amp;nbsp;Проекты&amp;nbsp;/&amp;nbsp;Заготовки&amp;nbsp;Статей&amp;nbsp;/&amp;nbsp;Программирование&amp;nbsp;/&amp;nbsp;На&amp;nbsp;Чём&amp;nbsp;Программировать&lt;/a> за &lt;a href="http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'?time=2004-08-17+14%3A36%3A44">2004-08-17 14:36:44&lt;/a> и &lt;a href="http://freesource.info/wiki/NachatyeProekty/ZagotovkiStatejj/Programmirovanie/NaChjomProgrammirovat'?time=2004-08-17+14%3A37%3A49">2004-08-17 14:37:49&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;hr noshade="noshade" size="1" />
&lt;hr noshade="noshade" size="1" />
(C) Denis Smirnov 15 Aug&amp;nbsp;2004&lt;br />
так&amp;nbsp;как статья находится в&amp;nbsp;разработке, её копирование на&amp;nbsp;другие сайты запрещается&lt;/div>&lt;/div>
</description>
</item>
</channel>
</rss>
