Главная > Информатика, программирование > На чому писати програми? (Короткий огляд можливостей мов програмування)

На чому писати програми? (Короткий огляд можливостей мов програмування)


25-01-2012, 11:04. Разместил: tester9

Сергій Трофімов

Сьогодні ми продовжуємо розмову на тему яка мова програмування вибрати, розпочатий з статті "Delphi або Visual C + + - ось в чому питання". Тема виявилася глибшою, ніж здавалося на перший погляд, і я провів деякі дослідження з цього питання. Результат я хочу представити на ваш суд.

подвигло мене до цього стаття "Кращі продукти" в журналі "Мир ПК" за січень 2001. Де опубліковані результати опитування серед читачів журналу на тему кращих інструментів розробки, кращих персональних СУБД і корпоративних СУБД.

Так, серед персональних СУБД кращою вважають:

Microsoft Access 2000 - 49%

голосували за інші версії того ж Microsoft Access - 23%

голосів на частку FoxPro - 19%

і тільки 9% на частку інших СУБД.

Потрібно Чи можна говорити, що Access програмується, в основному, за допомогою Visual Basic.

Якщо розглядати корпоративні СУБД, то впевнено лідирує MS SQL server, 21% за Oracle і тільки один з опитаних назвав Borland IB Database

З засобів розробки кращим назвали:

Delphi від Borland - 45% голосів

Borland С + + Builder - 14%

Microsoft Visual Basic - 28%

Visual C + + - 8%

Цифри мене зацікавили, оскільки я вважав, що Microsoft лідирує за всіма напрямками і я провів невелике порівняння цих засобів розробки. Результати представлені в Таблиці 1:

Я не розглядав окремо Delphi і Builder тільки по тому, що всі можливості Delphi доступні в Builder.

Таблиця 1 Порівняльна характеристика мов програмування.

№ Характеристики Засоби Visual Foxpro Access (VisualBasic) VC + + MFC BC + + Builder 1. Принцип обробки коду

Інтерп. (псевдо

Компілятор)

Інтерп. (псевдокомпілятор.) комп. комп. 2. Мова

DBASE c

з об'єктами

Basic c Об'єктами С + + С + +, Pascal 3. Система Закрита Закрита Відкрита Відкрита 4. Вбудовані бази даних DBF, DBC, ODBC MDB, ODBC

Класи обробки MDB, SQL через DB-бібліотеку,

ODBC

Об'єкти обробки dBASE, Paradox, InterBase, MDB, Informix, FoxPro, ODBC 5. Створення користувальницьких майстрів - - + + 6. Динамічне створення форм введення, обробки повідомлень + + - + 7. Модель створення додатку - - каркасна (майстер) компонентна (майстер) 8. Технологія Будівники екранів, меню, звітів (drag-and-drop), класів Будівники екранів, меню, звітів (drag-and-drop), класів Редактор класів, Редактор ресурсів (drag-and-drop) Редактор об'єктів (drag-and-drop) 9. Висновок з баз даних на друк Вбудований Report Вбудований Report Зовнішній Об'єкт: Report 10 Обробка виключень Процедура Процедура Об'єкт Об'єкт 11 Підтримка CASE Rational Rose - + + -

Природно, таблиця має потребу в деякому поясненні.

Пункт 1. FoxPro, Basic є інтерпретаторами, С + + - компілятором. Що з цього слід - зрозуміло. За допомогою інтерпретаторів можна швидко зібрати працююче додаток і змінювати його по ходу роботи програми, аж до того, що створювати програми "на льоту" (рядок 6 таблиці). Але за це доводиться розплачуватися швидкістю роботи кінцевою програми. Правда, при такому розвитку комп'ютерної техніки, коли вже 1000 Мгц нікого не здивуєш, на це можна злегка прикрити очі.

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

Останній Visual Basic вже заявлений як і компілятор теж, але щось слабо віриться, що можна зробити з Basic нормальний компілятор, але хто знає ...

Пункт 2. Не потребує коментарів

Пункт 3. Чому я називаю перші два інструмента закритими? Тому що це дійсно так. Якщо якась функція мови працює не так, як потрібно, то тут вже нічого не поробиш. Якщо оболонка випадає по Fatal Error, то в С + + можна завжди подивитися код, пройтися по трасуванню і перевірити, що зроблено неправильно. В VC + + вся бібліотека MFC поставляється з відкритим кодом. У інтерпретаторах залишається тільки гадати, як обійти помилку. Наприклад, в Foxpro команда

rele menu _msysmenu (видалити системне меню)

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

Пункт 4. Сама просунута система в обробці баз даних - це Borland, підтримує все на світі. Єдине, що можна сказати, що через ODBC завжди можна отримати доступ до будь формату даних, а постійно працювати можна тільки з тим форматом, обробка якого вбудована і, отже, має більш швидкий доступ, ніж ODBC (забирається зайва ланка). Таким чином, велика кількість підтримуваних безпосередньо форматів - це непогано, але не може бути головним критерієм вибору.

Пункт 5. Створення Майстрів користувача дозволяє створювати на основі майстрів шаблони найбільш поширених додатків. Це просто зручно для створення великої кількості однакових за формою, але трохи різних по суті додатків, наприклад обробки класифікаторів, але в більшості випадків програмісти замість майстра використовують свої старі напрацювання і всі задоволені.

Пункт 6 Тільки Microsoft не дозволяє динамічно ство...рювати форми Це випливає з принципової різниці між моделями створення додатку Пункт 7. Інтерпретатори, зрозуміло, можуть будувати все, що завгодно при роботі додатка, а компілятори тільки те, що закладено спочатку в межах, в яких це споконвічне дозволяє. У Borland більш просунуті об'єкти, які дозволяють встановлювати купу властивостей. Звичайно, VC + + може включити у форму додаткові кнопки і поля при роботі додатка, при великому бажанні можна зробити і цілу форму, але простіше її створити в редакторі ресурсів при створенні додатка, на цю тему в Borland більш просунута система, яка вже близька до інтерпретатора, тому я і поставив VC + + мінус. Хоча на С + + можна написати все що завгодно, але якщо в інструменті немає спеціально передбачених для зазначеної задачі засобів, то рішення цієї задачі буде трудомістким, а в інтерпретаторах і зовсім неможливо.

Пункт 7. На цьому я вже зупинявся в статті "Delphi або Visual C + + - ось у чому питання ". Модель від Microsoft більш відкрита, так як дає повністю відкритий шаблон коду, тоді як Borland не пускає програміста далі, ніж дозволяють властивості об'єктів. Це зручно для початківців, але може призвести до ситуації Пункту 3. Саме з причини різної моделі побудови додатка потрібно різні витрати на вивчення цих оболонок. В VC + + необхідно вивчити шаблон додатки і тільки потім писати його. Хоча можна мати тільки загальне уявлення куди додати необхідний код і не занурюватися в деталі. Таким чином, я б сказав, що така модель створення додатку більш легка для вивчення в Borland, але дає великі можливості для професіонала в Microsoft вже після вивчення.

Пункт 8. Тут справа звички, до всього звикаєш, порівнювати нічого.

Пункт 9 Тут Microsoft VC + + пропонує скористатися зовнішнім Crystal Report, який спеціалізований для побудови звітів, тоді як в інших інструментах використовуються вбудовані генератори (в Borland - об'єкт звіту). Добре це чи погано - важко сказати, часто спеціалізований інструмент краще універсального, але вимагає додаткового вивчення.

Пункт 10. Показує, що С + + просто більш просунуті системи для обробки виняткових ситуацій.

Пункт 11. Тут Visual Basic і VC + + на висоті. Тільки за одне це можна вибрати продукти Microsoft. CASE засоби дозволяють значно скоротити частку ручної кодування і, що найголовніше, полегшити подальший супровід. Коли через пару місяців в код готової програми необхідно внести зміни, то згадати ієрархію і взаємодія класів допоможе саме Rational Rose, який в графічному вигляді представить всі ці дані вже по готовому коду додатка.

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

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

Якщо потрібно написати серйозну програму, швидку і займає мало місця, потрібно вибирати між VC + + і Builder. Якщо при цьому ви любите pascal то ваш шлях до Builder (Delphi), якщо необхідно обробляти кілька типів баз даних на швидкості більшою, ніж надає драйвер ODBC, то знову Borland і, якщо необхідна робота з базами даних Borland, такими як Informix, то вибір зумовлений.

Однак, для серйозних додатків або систем, де без CASE засобів не обійтися, для роботи з MS SQL Server необхідно вибрати VC + +.

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

Список літератури

Для підготовки даної роботи були використані матеріали з сайту progcpp.narod.ru/doc/prog.htm