metaclass: (Default)
[personal profile] metaclass
Power and Complexity in a Programming Language

Похоже, что чем больше мощности и выразительности добавляется в язык программирования, тем более сложным он становится. Чем более сложным становится язык, тем труднее программистам понимать, читать и поддерживать его. И чем более сложный язык, тем более вероятно, что он будет сведен к его подмножеству, что уменьшит переносимость его между программистами. Один програмист может знать одно подмножество языка и другой - другое. Хорошим примером этого видимо является С++.

Я бы еще добавил, что сложность вносит стандартная библиотека и API к операционной системе. Вот, например, C# весьма простой и понятый язык. Но .NET фреймворк, особенно в новых версиях - это же ад, его в голове удержать невозможно, особенно с учетом тысяч мелких классов и интерфейсов с одним-двумя методами.
Жаба с ее фреймворками на каждый случай жизни - туда же.

Интересно, как в этом плане пришелся бы Haskell? Сам язык вроде не сильно сложный, а вот используемые в нем концепции - кошмарный ад, а мощность и лаконичность языка порождают вот такие алгоритмы. Хотя насчет последнего - интересно было бы взглянуть на аналогичный алгоритм на другом языке, может там окажется на две страницы еще менее понятного трэша.

Date: 2009-11-02 06:12 am (UTC)
wizzard: (Default)
From: [personal profile] wizzard
За эээ 8.5 лет ковыряния в дотнете, начиная с первых бэт, у меня сложилось устойчивое впечатление, что фрэймворк важно уметь не использовать :)

Ну т.е. вот WinForms - архитектурно страшное убожество, WPF, напротив - крутая штука. Но не первоначальная реализация (в .NET 3.0 и 3.5 он мягко говоря отличается по скорости и удобству использования)

Та же фигня с database access layer'ами и прочая. Благо, ничего магического там нет, можно ковырять, расширять, распиливать, декомпилировать и вообще извращаться. Дублирование кода сильное, есть разные штуки подточенные под разные сценарии. Но в общем всё абсолютно обозримо и сценарий "на вчера" поддерживает очень даже.

И не гнушаться лезть рефлектором, ndepend'ом и прочими смотреть что у него внутри. а, да, еще можно выпросить у микрософта сорцы, но там NDA и прочие пляски с буратинами. можно смотреть внутрь SSCLI и Mono, впрочем.

Date: 2009-11-02 07:43 am (UTC)
From: [identity profile] metaclass.livejournal.com
Вот. У меня точно такое же впечатление. Причем third-party контролы точно так же страдают от излишней сложности.

Date: 2009-11-02 10:42 am (UTC)
From: [identity profile] w00dy.livejournal.com
можно студию попинать чтобы сама сорцы вытаскивала где нужно.

А WinForms это просто ui winapi под .net со всеми ограничениями и багами. То что концепция устарела и нужно было что-то новое и так было понятно.

Date: 2009-11-02 11:07 am (UTC)
wizzard: (Default)
From: [personal profile] wizzard
>> сама сорцы вытаскивала

у меня настроено, просто есть же еще corlib и native-части

>> winapi под .net со всеми ограничениями и багами.
Да.

Date: 2009-11-02 09:14 pm (UTC)
From: [identity profile] faceted-jacinth.livejournal.com
Так она вроде и к нейтив частям умеет вытаскивать хотя бы символы.
symsrv*symsrv.dll*f:\symbols*http://msdl.microsoft.com/download/symbols

Date: 2009-11-02 03:43 pm (UTC)
From: [identity profile] softmaster.livejournal.com
http://weblogs.asp.net/scottgu/archive/2008/01/16/net-framework-library-source-code-now-available.aspx
вроде нет там NDA, просто read-only license.

Date: 2009-11-02 03:46 pm (UTC)
wizzard: (Default)
From: [personal profile] wizzard
Это про BCL. А я про runtime (Execution Engine, Type Checker, JIT и т.д.) говорю

Date: 2009-11-02 03:54 pm (UTC)
From: [identity profile] softmaster.livejournal.com
насколько я понял, оригинальный коммент коммент был про библиотеки и фреймворки, куда можно залезть рефлектором %)

Date: 2009-11-02 04:53 pm (UTC)
wizzard: (Default)
From: [personal profile] wizzard
ну.. куда можем - лазим, куда не можем - просим исходников, вот.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Oct. 1st, 2025 12:04 pm
Powered by Dreamwidth Studios