Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Философия (NET) или очерки рассуждений
 
 автор: oradev   (05.09.2007 в 14:12)   письмо автору
 
 

В свои годы читал книжку - философия Java Эккеля, по ней собсна ее и изучал. Область интереса были десктоп-приложения (клиент-сервер). Хотя и тогда и сегодня многие не понимают применение Java с ее JFC(аналог Framework) в качестве разработки различных GUI. Но в принципе сама технология написания программы резко отличались от столь распространенных в ту поры Delphi. Сейчас вот думаю пришла пора изучения платформы NET
(C#, ADO.NET 2.0). Приступив к изучению понял, технологии и подход Java и С# очень похожи, ровно так же как и технологии JDBC и ADO.NET 2.0. Наверное поэтому и стал изучать NET.
Так вот я немного отвлекся, дав лишь обоснование узучения данной платформы.
А вот хотелось бы у специалистов знакомых с NET не по-наслышки узнать, какую нишу она сегодня занимает, каковы перспективы ее развития.
Вообщем хотелось бы адекватных рассуждений.

   
 
 автор: cheops   (05.09.2007 в 14:45)   письмо автору
 
   для: oradev   (05.09.2007 в 14:12)
 

Эккель, это вещь - самое лучшее изложение основ Java, да и вообще товарисчь очень въедливый и дотошный.

.NET зародился как ответ Java и является памятником серверных амбиций Microsoft. Известно, что Microsoft захватила около 95% клиентских машин и 20% серверных. Уже много лет Microsoft бъётся как рыба об лёд, чтобы захватить больший кусок этого рынка, однако с серверной платформой у которой графическое ядро нельзя отключить и которое жрёт оперативную память - это не просто сделать. Рынок им нужен позарез - иначе они никогда не победят Oracle и не продвинут MS SQL, который, как известно под UNIX не работает. Рынок баз данных - это миллиарды долларов. Java ведь тоже появилась, как сервис для клиентов - Sun живёт с продажи серверов, её знаменитые UNIX системы, Java и т.п. - это лишь для того, чтобы сервера голыми не продавать (Cray в своё время тоже разрабатывал массу ПО для своих машин). Sun даже Solaris сделала свободно распространяемой (только покупайте наши сервера).

Кроме того, у Microsoft давно, еще с 1995 года имеется идея фикс - построить Бабель (вавилонское смешение языков) - т.е. среду, где бы можно было разрабатывать приложения на разных языках программирования. Пишите на одном языке - без всяких проблем переходите на другой, ушли у вас разработчики на C++, наняли разработчиков на VB, ушли эти - продолжили разработчики C# - получилось в целом не плохо, но не отлично - пришлось языки напильником под .NET затачивать.

.NET - это по сути такой глобальный интерпретатор, вроде PHP, только под windows, а не под Web заточенный (хотя Web-приложения тоже можно разрабатывать, но очень уж много сложностей с ASP.NET). Вместо того, чтобы разрабатывать огромные, дорогие, трудносопровождаемые Windows-приложения, можно писать их на чём-то вроде Visual Basic, C#, а исполняться они будут средой исполнения .NET, которые пользователи будут вынуждены устанавливать. В результате пользователю нужно установить один раз среду выполнения, зато потом он может выполнять .NET-приложения, очень компактные (размер очень маленький) и по эффективности практически не уступающие обычным приложениям.

Нишу вы определили правильно (покрайней мере в РФ) - приложения по обслуживанию баз данных (как правило, MS SQL). Рядовым разработчикам на C++ писать очень сложно - язык системный, очень много подводных камней и откровенно запутанных мест, система управления памятью изумительная, но провоцирует создание ошибочного кода. Visual Basic, С# или любой другой язык из семейства .NET лишены этих недостатков. Да, это интерпретируемые языки программирования (с учётом того, что это байт-код, конечно), однако сейчас, время программиста стоит сильно дороже, чем компьютерное время (отсюда, кстати, и такая популярность PHP).

PS Развиваться .NET будет, изучать его стоит - развивается он правда немного вяло, однако прогресс имеется и стабильный. Пока C++ разработчики, давлющие больше к Windows API относятся к нему с подозрением, раздражающая несовместимость сред исполнения и отсутствие таковых на приличном проценте машин также сдерживают развитие .NET, но скорее всего лет через 5-10 процент .NET и обычных программ может сравняться - слишком большой соблазн съэкономить - там где раньше нужно было до 5 C++ разработчиков, с .NET зачастую можно обойтись одним (пусть с некоторой потерей универсальности). Что это означает можно наблюдать по PHP-среде, такое изменение в инструментах зачастую провоцирует взрывообразное развитие отрасли. Правда я это не гарантирую :) - Microsoft всё-таки очень специфичная кухня...
PPS Вообще на .NET можно разрабатывать любые Windows-программы, например, у видеокарт Redon - система управления написана как раз на .NET.

   
 
 автор: oradev   (05.09.2007 в 15:13)   письмо автору
 
   для: cheops   (05.09.2007 в 14:45)
 

cheops, насчет вот этого
Рядовым разработчикам на C++ писать очень сложно - язык системный, очень много подводных камней и откровенно запутанных мест, система управления памятью изумительная, но провоцирует создание ошибочного кода.

Я полностью согласен. В том же Дельфи без знания хотя бы основ WinAPI очень сложно.
Я где-то читал, что NET с его библиотекой framework служит что-ли переходным мостиком. Между средой выполнения и WinAPI. Но поварачивается ли язык назвать тот же C# системным языком (наподобие C++). Помню мое удивление при переходе с Delphi(Object Pascal язык не поварачивается сказать) на Java. Да простые вещи на чистом Объектно-ориентированном языке писать очень сложно, но вместе с тем проблем с утечокой памяти почти не возникает, разнообразие типов(Vector, ArrayList, Map) своего рода STL.
Вообщем мне показался объектно-ориентированный Java намного проще и понятнее чем Delphi, хотя подчеркну многие думают наоборот. Думаю тоже можно сказать и про C#.

Но я опять отвлекся, вообщем-то действительно ли оно так ?
там где раньше нужно было до 5 C++ разработчиков, с .NET зачастую можно обойтись одним

   
 
 автор: cheops   (05.09.2007 в 16:03)   письмо автору
 
   для: oradev   (05.09.2007 в 15:13)
 

Нет, C# не является системным, слабо представляю себе драйвер созданный с его помощью, хотя под давлением программистов в него вернули практически всё (что было в C++ и отсутствовало в C#), вплоть до указателей на фукнкции (обозвав их предварительно делегатами).

>Я где-то читал, что NET с его библиотекой framework служит что-ли переходным мостиком.
В общем да, разработчиков на ASM, C и вообще системных разработчиков в современной IT-отрасли требуется на порядок меньше, чем прикладных разработчиков, которые бы гигибайтами выдавали код на гора. Миллион разработчиков на C++ (чтобы они не делали хотя бы части распространённых ошибок) очень сложно обучить, на PHP или C# - гораздо проще. Да, C#, да и .NET не позволит всё - для реализации ряда эффектов, функциональности всё равно потребуется лезть в Windows API, трясти реестр и возможно перейти на более эффективный C++, однако большинство задач, требуют быстрого решения. Русские и индусы рано или поздно кончатся, захотят больше денег - нужно делать так, чтобы работу, которую раньше выполняли несколько человек, мог делать один - т.е. вводить простые инструменты, которые позволят решать простые задачи (сложных инструментов для сложных задач уже в избытке :).

>>там где раньше нужно было до 5 C++ разработчиков, с .NET зачастую можно обойтись одним
>Но я опять отвлекся, вообщем-то действительно ли оно так ?
Достаточно условно - зависит от задачи. Разумеется такие программы как 3dmax или Photoshop вы при помощи .NET не построите, а если построите, то проклянёте всё насвете и скорее всего программа получится медленее. Однако, существует огромный класс задач, которые нужно делать быстро: база данных клиентов конкретной конторы, разбор специфичных логов и т.п. Создать и отладить такую программу на C++ - серьёзный труд для хорошей команды - на .NET - сутки (да, конечно, системному администратору потребуется установить среду исполнения, однако, машин для таких программ требуется немного - другое дело коммерческие программы, которые будут исполнятся на тысяче различных машин, параметры которых вам не известны). Я вообще в последнее время обнаглел - пишу логику на PHP, а интерфейс (практически уже отработанная и готовая часть, которая делается Ctr+C, Ctr+V) на C++... деваться некуда, я не могу из-за каждой программы для внутреннего пользования (т.е. некоммерческой программы, которой будут 1-2 человека пользоваться) скалачивать команду или самому тратить по месяцу на разработку - максимум 1 сутки. PHP + С++ - это конечно экзотика, которая простительна автору книг по PHP, но вместо этого зачастую используется .NET - продираться через хитросплетения C++ ради дрянной программы, которая будет использоваться 2-мы пользователями на одном компьютере - очень дорогое удовольствие (да никому не нужна будет эта программа через пол года). Если раньше скрок разработки программы был 6 месяцев, сейчас 1 день, максимум неделя - командой тут вообще нечего делать, только неделю на согласования потратишь.

Ведь никому не нужны Photoshop, Word, 1С - это всё готово, нужно массу мелких, специализированных клиентов для баз данных - которые уникальны, являются зачастую самой большой ценностью компании и из которых нужно выжать максимум пользы за как можно меньшие вложения в ПО.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования