exceed_er: (Default)
exceeder ([personal profile] exceed_er) wrote2005-06-05 05:49 pm
Entry tags:

программерско-маркетинговое (война ППИ | API war)

С удовольствием прочитал вот эту статью: http://www.joelonsoftware.com/articles/APIWar.html
(кстати, ППИ = прикладной программный интерфейс = API. Не знаю, пользуются ли этой аббревиатурой еще, вообще не завидую переводчикам программерских материалов)

Хотя статья обьясняет, почему и как Майкрософт проиграл одну весьма важную для него войну, она отнюдь не анти-майкрософт. Скорее она выражает взвешенную точку зрения программиста, который выбирает инструменты для программы, которой работать следующие 5-10 лет. Я не нашел места, где бы я был не согласен с автором. Плюс, отличное чувство юмора и много мест, где я ржал.

"Майкрософт часто делает ставки, которые проигрывает. Например WinFS, разрекламированная как способ улучшить поиск, сделав файловую систему реляционной базой данных, игнорирует факт, что настоящий способ улучшить поиск - это улучшить поиск. Не надо заставлять меня впечатыавть метадату для всех моих фйлов, чтобы я выучил и мог использовать язык запросов. Просто имейте совесть и поищите долбаный диск, быстро, по строке, которую я напечатал, используя текстовые индексы и технологии, которые уже в 1973 г. перестали быть новыми и интересными."

"В начале 90х многие из нас думали, что большая битва будет между процедурным и ОО-программированием, и мы думали что ОО резко улучшит продуктивность. Я тоже так думал. Многие люди все еще так думают. Оказалось, что мы не правы. ООП - очень удобный прикол, но это не то что было обещано. Настоящее значительное улучшение продуктивности исходит от языков, которые автоматически управляют памятью для вас." (VB, Java, C#, Lisp..)

Из статьи становится предельно ясно, почему Intenet Explorer уже несколько лет не развивается (и не будет), что происходит с C# и почему гораздо больше программ на C# для веба а компании не спешат переводить свои существующие программы на .НЕТ.

В конце статьи есть немного рекламы софта, который автор разрабатывал, и я уже совсем ржал на вот этом скриншоте:
http://www.fogcreek.com/FogBUGZ/40tour/06.html
Он в деталях показывает путь ошибки, найденной клиентом через менеджеров и программеров в новый релиз.

[identity profile] level42.livejournal.com 2005-06-06 03:54 am (UTC)(link)
yup... :) но тем не менее, я слышал неоднократно что с тех пор как для blackberry стали все писать на Java, медленнее они стали значительно...
:-P
и никто меня не переубедит насчет эффективности... согласен, в 85% случаев оно не критично, но в остальных 15% без С никуда. а в С++ многое лишнее... вернее не лишнее, но многие вещи замедляют сильно. Inheritance,Virtual functions и прочий OOP-related junk.

[identity profile] msh.livejournal.com 2005-06-06 04:00 am (UTC)(link)
Inheritance вообще ничего не замедляет, ибо это просто концепция, а virtual functions в современном ABI замедляет на одно обращение к памяти.

really?

[identity profile] level42.livejournal.com 2005-06-06 04:08 am (UTC)(link)
Object Construction: Inheritance does increase the object construction overhead, as constructors for all the parent classes in the class hierarchy are invoked. There is the additional overhead of setting up vtable in the constructor.


Object Destruction: Inheritance does increase the object destruction overhead, as destructors for all the parent classes in the class hierarchy are invoked. There is the additional overhead of setting up vtable in the destructor. Virtual destructors also increase the overhead of object destruction.

Re: really?

[identity profile] msh.livejournal.com 2005-06-06 04:16 am (UTC)(link)
Really, really

Все равно включен объект или унаследован - конструктор и деструктор придется вызывать.

А overhead на создание vtable совершенно пренебрежимый на фоне создания объекта вообще.

Re: really?

[identity profile] level42.livejournal.com 2005-06-06 04:18 am (UTC)(link)
угу... вот и вопрос тогда - зачем они вообще нужны - объекты?...

Re: really?

[identity profile] msh.livejournal.com 2005-06-06 04:23 am (UTC)(link)
Это чрезмерно философский вопрос. Объекты - это одна из методик проектирования и программирования, сама по себе не good и не evil

:-)

[identity profile] level42.livejournal.com 2005-06-06 04:28 am (UTC)(link)
согласен.
я к тому что у меня всегда настольной книгой был Керниган и Ричи, а не Страуструп.
Естественно - это не лучше и не хуже. это просто как оно есть... :-)

Re: really?

[identity profile] juan-gandhi.livejournal.com 2005-06-06 04:52 am (UTC)(link)
В критичных кусках, имхо, ничего не надо ни создавать, ни разрушать. Пользоваться имеющимися. Имхо.

Re: really?

[identity profile] exceeder.livejournal.com 2005-06-06 04:57 am (UTC)(link)
Абсолютно правильно. Для этого и были придуманы object pools.