Автор Гілка: Хто й на чому програмує?(Або де дістати Kylix)  (Прочитано 5023 раз)

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
С/С++ - це граблі для програмування. Паскаль це струнка мова програмування котра дозволяє розробляти код без "тихого глюку". На С/С++ коду розмірів в 1Кб без глюків ви не знайдете.
Що, правда??? Приклади і аргументи в студію. До обох тверджень.

Паскаль писався для навчання студентів, тому це струнка і логічна мова. Вона можливо зараз програє деяким іншим мовам програмування в простоті, зрозумілості й потужності але точно не Сі++.

Сі - це переносимий асемблер. Він зручний, але простоти там малувато.

Сі++ - це розширення Сі, яке значно ускладнило мову. Досить багато речей там нетривіальні (+ нетривіальні речі, які залишилися у спадок від Сі). Тому недивно, що в Сі++ накладки починаються ще на рівні опису стандарту.
[Fedora Linux]

Praporshic

  • Гість
Паскаль писався для навчання студентів, тому це струнка і логічна мова.
Наскільки мені відомо, то Basic також розроблявся для навчання  ::)

Сі - це переносимий асемблер. Він зручний, але простоти там малувато.

Bjarne Stroustrup " The C++ Programming Language" у моєму ну дууууже вільному перекладі:
Цитата
С був вибраний тому, що він
1. достатньо низького рівня
......

Сі++ - це розширення Сі, яке значно ускладнило мову. Досить багато речей там нетривіальні (+ нетривіальні речі, які залишилися у спадок від Сі). Тому недивно, що в Сі++ накладки починаються ще на рівні опису стандарту.
З цим згоден. С/С++ досить складні мови, але також піддаються вивченню та написанню якісного коду (я хоч і не програміст, але в цьому переконався на власному досвіді).

zzandy

  • Гість
STL - це бібліотека, а не мова.

С/C++ не такі вже складні, все залежить від задач, які ви хочете вирішити з їх допомогою. Екскаватор, наприклад, нетривіальна штука, але хто сказав, що професійні інструменти мають бути тривіальними. Якщо вам треба пасочки робити - берете тривіальний совочок - і в перед, а якщо вам треба швидко рити канави 2х3х100 метрів - то доведеться розібратися з екскаватором (хоча і совочком можливо таку канаву вирити).

Відсутній Cthulhu

  • Кореспондент
  • ***
  • дописів: 183
  • Карма: +0/-0
С/C++ не такі вже складні, все залежить від задач, які ви хочете вирішити з їх допомогою. Екскаватор, наприклад, нетривіальна штука, але хто сказав, що професійні інструменти мають бути тривіальними. Якщо вам треба пасочки робити - берете тривіальний совочок - і в перед, а якщо вам треба швидко рити канави 2х3х100 метрів - то доведеться розібратися з екскаватором (хоча і совочком можливо таку канаву вирити).
+1

Інша справа, що ця аналогія доречна скоріше для C++ (надто тяжка артилерія, щоб стріляти по горобцях типу "helloworld").  C може виконувати взагалі будь-які задачі (як кросплатформенний ассемблер:)), і при цьому не викликає настільки стійкого головного болю як власне асм.

Щодо простоти паскаля і призначеності його для студентів. Існують набагато простіші і логічніші мови з нормальним синтаксисом (тобто читабельні, але це imho), які може засвоїти і дитина. Той же python. Чи scheme. Мало того, на них ще й щось корисне можна написати...

Відсутній Сергій Лисовенко

  • Літератор
  • ******
  • дописів: 1489
  • Карма: +0/-0
C може виконувати взагалі будь-які задачі (як кросплатформенний ассемблер:)), і при цьому не викликає настільки стійкого головного болю як власне асм.
Не таки вже вона і кросплатформений асемблер, особливо, клоимайкрософт примудрився запхати в її компілятора (під вінду) свої дурниці. Для кросплатфрменості С треба кросплатформено писати нею програми. Бо, наприклад, деякі мої програми під вінду мало не наново доводиться під нормальну оперативку переписувати :)

________________________________________

Програмував колись і на Бейсіку, і на Паскалі, але від С мене зараз не відірвеш. З чого роблю висновок, що С зовсім не складна. С++ складнувата (як дя кого), але... красива: поперепризначав оператори і твори, що хочеш  :)
« Змінено: 2006-06-30 11:35:31 від serg_ik »
Якщо Лінукс написали студенти - нехай вони під ним і навчаються.

Відсутній Cthulhu

  • Кореспондент
  • ***
  • дописів: 183
  • Карма: +0/-0
Не таки вже вона і кросплатформений асемблер, особливо, клоимайкрософт примудрився запхати в її компілятора (під вінду) свої дурниці. Для кросплатфрменості С треба кросплатформено писати нею програми. Бо, наприклад, деякі мої програми під вінду мало не наново доводиться під нормальну оперативку переписувати :)
Ключове слово тут не стільки "кросплатформенний" скільки "ассемблер":)

Програмував колись і на Бейсіку, і на Паскалі, але від С мене зараз не відірвеш. З чого роблю висновок, що С зовсім не складна. С++ складнувата (як дя кого), але... красива: поперепризначав оператори і твори, що хочеш  :)
М-да, пам'ятаю я як писав всяку каку на паскалі і мріяв про С... ::) А C++ насправді далека від ідеалу, своїх граблів там вистачає. Але альтернатив мало і вони не популярні. І вже точно до них не належать всякі там клони паскаля.

Відсутній Soft

  • Кореспондент
  • ***
  • дописів: 100
  • Карма: +0/-0
  • Чому саме Лінукс?
STL - це бібліотека, а не мова.

С/C++ не такі вже складні, все залежить від задач, які ви хочете вирішити з їх допомогою. Екскаватор, наприклад, нетривіальна штука, але хто сказав, що професійні інструменти мають бути тривіальними. Якщо вам треба пасочки робити - берете тривіальний совочок - і в перед, а якщо вам треба швидко рити канави 2х3х100 метрів - то доведеться розібратися з екскаватором (хоча і совочком можливо таку канаву вирити).

Java набагато краща за C/C++. Це повністю об’єктноорієнтована, кросплатформена мова на котрій дуже складно написати глючну програму, навіть великий проект розподілених обчислень. Тому що вона не тільки ввібрала в себе стрункість філософії Паскаля, потужність С++ та візуальність Delphi, вона також на рівні стандарту мови дозволяє програмісту контролювати самого себе.

Якщо ви не знаєте Java, то ви й не програміст.

zzandy

  • Гість
Якщо ви не знаєте Java, то ви й не програміст.
тю - це ви дурість зморозили

Java - не конкурент С/С++. Вони в різних категоріях. Якщо станеться так, що Java хочаб наблизится до цієї пари по швидкодії, споживанню пам'яті - тоді можна буде повернутися до цієї теми (або коли С/С++-програму можна буде так-же легко переносити з однієї системи на на іншу). Доречі, вся сила Java не в мові, а в бібліотеках завдяки яким треба менше створювати і більше збирати.
« Змінено: 2006-06-30 22:48:44 від zzandy »

Praporshic

  • Гість
Java набагато краща за C/C++. Це повністю об’єктноорієнтована, кросплатформена мова на котрій дуже складно написати глючну програму, навіть великий проект розподілених обчислень.
 ;D ;D ;D
Написати глючну програму можна на будь-якій мові. Навіть на "казарменній мові програмування молодшого командного та рядового складу".
Хоча, все це holly war. Кожен пише на тому, на чому вміє. І не треба казати що щось гірше, лише тому що Ви знаєте це "щось" гірше і для Вас особисто воно складніше. З цього правила можна зробити хіба що єдине виключення - Basic.



Відсутній Soft

  • Кореспондент
  • ***
  • дописів: 100
  • Карма: +0/-0
  • Чому саме Лінукс?
Якщо ви не знаєте Java, то ви й не програміст.
тю - це ви дурість зморозили

Java - не конкурент С/С++. Вони в різних категоріях. Якщо станеться так, що Java хочаб наблизитися до цієї пари по швидкодії, споживанню пам'яті - тоді можна буде повернутися до цієї теми (або коли С/С++-програму можна буде так-же легко переносити з однієї системи на на іншу). Доречі, вся сила Java не в мові, а в бібліотеках завдяки яким треба менше створювати і більше збирати.

Споживання пам’яті та швидкодія (до речи Java всього на 10-30% повільніше від С, та й можна використовувати JNI де в платформозалежних бібліотеках писати код на асемблері під конкретний процесор) це речі, котрі вже зараз майже нікого не турбують, крім розробки програм під мікроконтролери (100 Mips, 4Kb ОЗП). От там асемблер та С нічого поки не зможе замінити. А Linux там також не потрібний.

А нову насьогодні машину Sempron 3000+ з 1GB пам’яті можливо купити і за 600$, а на такому будь-яка програма на Java буде просто літати.

Відсутній intracer

  • Новачок
  • *
  • дописів: 35
  • Карма: +0/-0
  • I Love YaBB 2!
Дивно чому так багато на C/C+ софту (і не глючного)
і так мало на Java?
Eclipse та Azureus - літають? а система неслаба й памяті задосить
Порівняйте швидкодію та вжиток памяті Azureus із іншими торрент клієнтами. відмінність не в рази, а на порядок

звідки ви взяли 20-30%? Queen test дає 100%
цікаво, програма на Java знаходження наступного невідомого простого числа теж буде літати? може на Java всі алгоритми за сталий (а не логарифмічний, лінійний, поліноміальний, експоненціальний - як на інших недолугих мовах) час виконуються?
« Змінено: 2006-07-01 15:05:03 від intracer »

zzandy

  • Гість
Доречі, 600$ це не так і мало.

Minesweeper також буде літати а от вебсервер - ні.
« Змінено: 2006-07-02 16:29:12 від zzandy »

Відсутній Soft

  • Кореспондент
  • ***
  • дописів: 100
  • Карма: +0/-0
  • Чому саме Лінукс?
Доречі, 600$ це не так і мало.

Minesweeper також буде літати а от вебсервер - ні.

Приклад НТТР-сервера на Java:

http://sources.ru/java/java_server.shtml

zzandy

  • Гість
http://sources.ru/java/java_server.shtml:
Цитата
Пример очень простого многопоточного НТТР-сервера:

Я серйозно, а ви ...
« Змінено: 2006-07-02 18:12:54 від zzandy »

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Java - не конкурент С/С++. Вони в різних категоріях.
Ну це ви дарма так. gcj активно розвивається. Вже зараз Яву можна вільно змішувати з Сі++. По швидкодії вони практично однакові.

Цитата
Якщо станеться так, що Java хочаб наблизится до цієї пари по швидкодії, споживанню пам'яті - тоді можна буде повернутися до цієї теми
Ви помічаєте якусь суттєву різницю між g++ та gcj (це фактично препроцесор для g++)?
Чи може ви маєте мобілку з 1Gb пам'яті для того щоб запускати мідлети?

Цитата
Споживання пам’яті та швидкодія (до речи Java всього на 10-30% повільніше від С
Різні реалізації віртуальної машини та компіляторів яви дають різницю в швикодії та споживання пам'ятів в рази. Ява може бігати швидко на мобілці й гальмувати на суперкомп'ютері, а ви  - "10-30%". Та таку різницю в швикодії можуть давати різні релізи однієї і тієї ж версії SUN JVM на деяких тестах. :-)

Он icc часто обганяє gcc на 10-30%, tcc - ще повільніший, а особливо без -O3,  а інтерпретатор Сі взагалі гальмує, і що? Мова Сі - гальмо?

Стратегія розвитку Яви:
  - зробити щоб працювало;
  - зробити щоб працювало правильно (на всіх платформах);
  - зробити щоб працювало правильно і швидко
саме в такій послідовності.

Цитата
Дивно чому так багато на C/C+ софту (і не глючного)
і так мало на Java?
Багато ПЗ тому, що ці мови існують вже дуже давно, і багато встигли написати. А на рахунок неглючності ви явно прибріхуєте - виправлення для програм на Сі/Сі++ займають значну (якщо не основну) частину виправлень для стабільних дистрибутивів (таких як Debian 2.x).

Цитата
Eclipse та Azureus - літають? а система неслаба й памяті задосить
Порівняйте швидкодію та вжиток памяті Azureus із іншими торрент клієнтами. відмінність не в рази, а на порядок
Поганому програмісту ява заважає. Порівняйте ssh клієнт для мобілки (на j2me) з іншими клієнтами. Відмінність не в рази, а на порядок.

Цитата

звідки ви взяли 20-30%? Queen test дає 100%
Можна навести код тестів й умови й в яких їх міряли?

Цитата
цікаво, програма на Java знаходження наступного невідомого простого числа теж буде літати?
Вона може й не літатиме (хоча це залежить від реалізації), але точне слідування специфікаціям IEEE по роботі з числами з плаваючими комами може дати в кінці зовсім інший результат. ;-)

Цитата
може на Java всі алгоритми за сталий (а не логарифмічний, лінійний, поліноміальний, експоненціальний - як на інших недолугих мовах) час виконуються?
Можете перевірити цю дур^Wтеорію на практиці. :-)
[Fedora Linux]