Языки программирования: из коробки удобочитаемость и расширяемость - PullRequest
0 голосов
/ 02 января 2011

Два превосходных результата идеологии разработки SOLID:
- разборчивость
- Расширяемость
в течение жизни проекта (http://en.m.wikipedia.org/wiki/Solid_(object-oriented_design)

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

Некоторые определения для предотвращения предвзятости и пламенных войн:

  • Разборчивость: количество раздумий, чтобы понять код, пропорциональный количеству кода: (amount_think-energy / amount_code) довольно постоянный и минимально возможный в оптимальном случае.
  • Расширяемость: добавление X количества функциональности требует изменения кода или добавления кода пропорционально X (amount_added_functionality / amount_added_code) довольно постоянным и максимально высоким в оптимальном случае.

Поддержка информации и учебных пособий приветствуется. Фрагменты кода приветствуются.

Ответы [ 2 ]

1 голос
/ 02 января 2011

Я мог бы перечислить все на этой странице , но просто нажмите на нее, чтобы прочитать все об удивительности D.

(Как бы я ни склонялся к тому, чтобы сказать, что это абсолютно объективно, вероятно, это не так ... но это все же должно дать вам хорошее представление о возможностях D.)

1 голос
/ 02 января 2011

Python. Это сжато, но не загадочно. Он позволяет избежать чрезмерного использования символов (or и and вместо || и && и т. Д., А также без фигурных скобок), он должен иметь одинаковые отступы во всем (что делает структуру гораздо более наглядной), он динамически печатается (предотвращение некоторых моментов царапания головки, вызванных переменными приведения, перегрузкой и т. д.). Python также позволяет легко заставить пользовательские объекты вести себя как встроенные типы с помощью магических методов (например, я могу определить метод __add__ и добавить два экземпляра моего объекта точно так же, как я бы добавил целые числа).

Объектно-ориентированный синтаксис Python очень гибкий. Магические методы делают практически все возможное с помощью классов Python без особых усилий. Например, если бы я хотел сделать объект вызываемым, все, что мне нужно было бы сделать, это:

class SomeClass:
    # rest of class implementation here

    def __call__(self):
        # define some behavior for when the object is called

Мне не нужно делать ничего прикольного; это стандартная процедура, требующая минимального изменения кода.

Более того, поскольку Python имеет очень обширную стандартную библиотеку, делается небольшое переосмысление колеса, что снова позволяет добавлять огромное количество функциональности практически без написания нового кода.

Существует множество других причин, по которым Python является разборчивым и расширяемым, и существует множество других языков, которые так же хороши для SOLID. Я просто подумал, что смогу найти свой любимый язык.

...