Міра швидкості розвитку


10

Я бачив багато тестів, що вимірюють швидкість виконання мов програмування, але я ніколи не знаходив тестів, що вимірюють швидкість розвитку.

Я чув, що швидкість розвитку збільшується під час роботи з динамічними мовами, але чи є якісь докази цього? Я не намагаюся сказати, що динамічні мови не є ефективними, але я хотів би побачити результати наукового дослідження, якщо таке існує.

Ще кращою буде інформація про технічне обслуговування. Чи є деякі мови простішими для налагодження, ніж інші?

EDIT: Мене найбільше цікавлять відмінності між двома мовами, близькими за синтаксисом. Наприклад, я думаю, що програмування на C зазвичай буде повільніше, ніж програмування на Java; але програмування на Java швидше, ніж програмування на C #?


Дивіться programmers.stackexchange.com/questions/10032 (але зауважте, що я не стверджую, що це дублікат).
Френк Ширар

Це справді цікаво, дякую! Деякі з посилань - це саме те, що я шукав.
DistantEcho

Подивіться на цю тему: stackoverflow.com/questions/1894453/…
ChristopheD

Відповіді:


6

Абсолютно мова програмування має значення. Однак я думаю, що різниця набагато більше стосується того, наскільки програміст знайомий з кожною мовою, ніж будь-який конкретний аспект мови, особливо зважаючи на обмеження мов із подібним синтаксисом.


2

Для мене це свого роду аналог того, який тип кисті для фарби дозволяє вам швидше малювати.

Якщо ви вважаєте, що ви фарбуєте товар, то чим більше кисть, тим швидше ви будете малювати.

Якщо ви бачите гарний код як форму мистецтва, то він менший за розмір пензля, і більше, що саме ви робите з кистями.

Вибачте, це не відповідь на власне питання.


Насправді мене більше цікавить різниця між двома великими кистями. Наприклад, як ми можемо знати, чи матиме Python кращу швидкість розвитку, ніж Lua - або зворотну?
DistantEcho

1
@Niphra, ти не знаєш. У такому порівнянні є занадто багато неправдоподібних даних, щоб вони були дійсним показником для цього.
Адам Кросленд

хороша відповідь, але лише якщо ви ігноруєте майстерність живописця
Стівен А. Лоу

1

Я не впевнений, що це актуально, але це цікаво

У «Міфічному місяці людини» Фред Брукс згадує дослідження, в яких порівнюються мовні збори та мови вищого рівня. Вони виявили, що програмісти випускають однакову кількість інструкцій на рік в обох, але інструкції для мови високого рівня дорівнювали множинним інструкціям з мовної збірки. Таким чином, перейшовши на мову високого рівня, програмісти домоглися збільшення, незважаючи на середню кратність інструкції по збірці на мовну підготовку за продуктивністю.

Те саме має стосуватися C проти Java / C #, я не знаю реальної різниці між C # і Java. Але щоразу, коли ви збільшуєте рівень абстракції, ви збільшуватимете продуктивність. Однак я також думаю, що це зменшить контроль над тим, що машина справді робить. Ви повинні довіряти, що мова робить те, що ви хочете. Наприклад, у високопродуктивному програмному забезпеченні збирання сміття є неприйнятним, за винятком випадків, коли ви маєте повний контроль над його запуском, і за тим, як довго він працює.


Було б цікаво, якби сьогодні були якісь дослідження, які б повторили це знову, порівнюючи мови високого рівня, такі як node.js та python.
SomeGuyOnAComputer

1

Що таке продуктивність? Що таке продукт , навіть? Ніхто не знає, математично кажучи.

KLoC?

Цикломатична складність?

Функціональні точки?

Я вважаю, що вам доведеться подивитися на рівні бізнесу та провести відсоткове порівняння з іншими програмістами, які виконують подібну роботу, а потім виміряти функції, надані одному програмісту. Це дуже складні і тонкі моменти, щоб можна було статистично вимірювати і зберігати значення.


0

Уявіть, як це було б перевірено: вам потрібно мати якийсь реальний проект, розроблений незалежно, як неодноразово, з однією і тією ж мовою (щоб забрати мінливість досвіду та знань програміста), так і з різними мовами (щоб отримати деякі дані для порівняння мов). Мені здається, що експеримент швидко зростає до некерованого розміру.

Я хотів би почути про способи "зменшити" експеримент або про спроби фактично виконати експеримент, як зазначено.


Досвід - це справді проблема, тому я б працював з новачком, а ще краще, хтось знав абсолютно іншою мовою програмування. Що стосується розміру проекту, то, мабуть, дуже малого проекту було б достатньо для отримання результатів, навіть якщо вони не є ідеальними.
DistantEcho

Іноді, однак, розповідь іде, що "перемога" мови відбувається лише через певний розмір / складність. Для проблем, менших / простіших за них, дивовижність цієї мови не очевидна. Так сказано.
Френк Ширар

Я б очікував, що певний «виграш» - це лише минулий певний рівень складності та досвіду роботи програміста. Вимірювання з початківцями здебільшого пропускає суть. Дійсно, що добре використовувати мову, вимагає специфічного досвіду мови.
kasterma
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.