Перейти до вмісту

Найулюбленіша мова програмування


Повідомлень в темі: 210

#141 kalamar

    Старійшина

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 4207 повідомлень
  • Стать:Чоловік
  • Місто:Чорнильщина

Відправлено 30.10.2009 – 10:47

Перегляд дописуFT232BM (29.10.2009 21:32) писав:

Компілятор від Інтела то звичайно круто))) Та і на супер комп'ютерах він використовується. Але він вузьконаправлений, на Сі можна писати що завгдно від математичних алгоритмів до програмування будь-якого харду та складних графічних інтерфейсів. Мова така ж поширена як АК47. Так, Фортран зроблений тільки під математику, але в цьому сегменті у нього є конкуренти на зразок Matlab, нехай він інтерпретується(матлаб) і не найшвидший, але туди загнано добіса багато гарних алгоритмів і неймовірно зручно програмувати. А коли треба швидкий алгоритм відкриваєш книжку по дискретці та пишеш на асемблері. Ті ж версії фортрана, що існують зараз, очевидно не надто поширені.
Вибачте, але парою дописів вище я писав, що фортран вузькоспеціалізований, звичайно він для симуляції та лузання чисел. С теж далеко не універсальний, й у порівнянні із новішими мовами (як луа, пітон, гаскел...) уже давно далеко не "крутий" із суто "мовного" погляду. (Є ще чудова мова ада яку полюбляє наса :) ).
Інтерфейс, для фортранівської прграми легко написати на пітоні (в принципі, ви можете на Visual Fortran написати і інтерфейс, але навіщо збочуватись :) ). Щодо матлабу, то я знаю і користуюсь Октавом (зовні, по синтаксису, це майже Матлаб), хоча останнім часом частіше замість Октава(Матлаба) використовую пітон (там багато спеціалізованих модулей). Але не думаю, що матлаб є конкурентом фортрану там, де фортран використовують найбільше, бо матлабом ви можете користуватись для порівняно не великих обчислювальних задач, а там де фортранівська прграма рахує місяць на суперкомп'ютері :ggggg:, навряд. Особисто для мене 90 фортран привабливий операціями із масивами.

Перегляд дописуFT232BM (29.10.2009 21:32) писав:

А коли треба швидкий алгоритм відкриваєш книжку по дискретці та пишеш на асемблері
<_< Правда? усе так просто? А коли портуєте програму у якій з пів мільйона стрічок коду, теж на асемблері? Якщо ви фан асемблеру, можете портувати, але асемблер вам може раптом дати лише якихось 20% приросту швидкості у порівнянні із 77 фортраном, чи варті зусилля результату?
  • 0

#142 FT232BM

    私は人々嫌い

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 3435 повідомлень
  • Стать:Чоловік
  • Місто:Київ-&gt;НТУУ &quot;КПІ&quot;

Відправлено 02.11.2009 – 10:11

Перегляд дописуkalamar (30.10.2009 10:47) писав:

:) Правда? усе так просто? А коли портуєте програму у якій з пів мільйона стрічок коду, теж на асемблері? Якщо ви фан асемблеру, можете портувати, але асемблер вам може раптом дати лише якихось 20% приросту швидкості у порівнянні із 77 фортраном, чи варті зусилля результату?

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

#143 kalamar

    Старійшина

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 4207 повідомлень
  • Стать:Чоловік
  • Місто:Чорнильщина

Відправлено 02.11.2009 – 21:55

Перегляд дописуFT232BM (2.11.2009 10:11) писав:

Писати на мові асемблера є певний сенс, особливо, коли код циклічно повторюється безліч разів(оцінка функції в алгоритмах оптимізації, наприклад), потім лінкуєш його з основною програмою і спостерігаєш чудовий результат.
Тут важко із вами не погодитись, профілюєте програму, й перекладаєте на асемблер частини коду які виконуються найчастіше. Але усе ж асемблер - мова дуже низького рівня, й писати на ній багато - трудомістка задача, усе ж має значення швидкість коду який дає компілятор мови високого рівня.
Просто ви стверджуєте популярну думку, що С - найшвидша. Ця думка поширена, але люди які її висловлюють звичайно не приводять доказів правильності цієї думки, звичайно кажуть, що С швидка - бо близька до заліза, але з тим, що С найкраша для системного програмування я й не сперечаюсь, однак із близькості С до заліза зовсім не слідує швидкість С та її найкращість для инших цілей не пов'язаних безпосередньо із залізом.
Оскільки зайшла така дискусія, я зробив пошук у гуглі, й надибав на таку думку одного інженра гугла http://scienceblogs.com/goodmath/2006/11/t...language_fa.php.
Прочитайте й гляньте на тест який він зробив, вам залишається лише сподіватись на некомпетентність цього пана :) , бо результати тесту для С повністю провальні. С програв OCaml майже втричі, це при тому, що OCaml - мова вищого за С рівня, а також просто смішно порівнювати ресурси й зусилля витрачені на розробку компіляторів для С та OCaml.
  • 0

#144 FT232BM

    私は人々嫌い

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 3435 повідомлень
  • Стать:Чоловік
  • Місто:Київ-&gt;НТУУ &quot;КПІ&quot;

Відправлено 03.11.2009 – 20:11

Нє, не так, мені потрібно сподіватись на криворукість пана в плані налаштування компілятора(ступінь оптимізації то не все). Та і вибрані компілятори мені не знайомі. Компілив пару раз GCC але то не рахується. Часто мушу переглядати машинні коди, скомпілені Сі, то не шедевр, хоча певна тактика для прискорення існує.
Доречі а ким пан працює, що так шарить у даній області?
  • 0

#145 kalamar

    Старійшина

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 4207 повідомлень
  • Стать:Чоловік
  • Місто:Чорнильщина

Відправлено 03.11.2009 – 23:45

Перегляд дописуFT232BM (3.11.2009 20:11) писав:

Нє, не так, мені потрібно сподіватись на криворукість пана в плані налаштування компілятора(ступінь оптимізації то не все). Та і вибрані компілятори мені не знайомі. Компілив пару раз GCC але то не рахується. Часто мушу переглядати машинні коди, скомпілені Сі, то не шедевр, хоча певна тактика для прискорення існує.
Доречі а ким пан працює, що так шарить у даній області?
Очевидно маються на увазі багатопроцесорні машини. Якщо ви користуєтесь компілятором мікрософт, то я взагалі не певен, що той компілятор зараз взагалі підтримує ті платформи, а GCC - пітримує майже все що рухається, до того ж абсолютна більшість сучасних суперкомп'ютерів на лінукс, на віндовз лише коло 1% http://www.top500.org/stats/list/33/os, тому круть-верть, якщо дійде діло до суперкомп'ютерів та якої небуть динаміки рідин, передусім доведеться мати справу із GCC (не думаю, що ряд комерційних компіляторів для тих платформ суттєво виграє у GCC, радше навпаки).
Власне той пан пояснив причину, С орієнтована на вказівники мова, причому на unrestricted pointers, й маєте проблему alias detection.
Цитата
If you look at that loop, it can be parallelized or vectorized without any problem if and only if the array pointed to by x and the array pointed to by y are completely distinct with no overlap. But there's no way to write code in C or C++ that guarantees that.
В результаті компілятор просто не може застосувати ряду оптимізацій, бо не знає, чи ті оптимізації вірні, він не може вгадати думок програміста. Фортран побудований з оглядом на оптимізацію компілятором, він навіть за рахунок обмеження деяких можливостей програмісту, спрщує задачу компілятору. Тай ряд инших мов виявляється паралелізувати чи векторизувати простіше ніж С, фортран навіть не найшвидший (автор приводить sisal, слід мабуть додати цілий ряд функціональних мов). (на однопроцесорній машині сучасний С мабуть трохи виграє у фортрана за рахунок багато більших зусиль витрачених на розробку компілятора, наслідок мейнстримності С). Й нарешті новий С99 стандарт С (трохи запізно) додав спеціальне ключове слово restrict http://en.wikipedia.org/wiki/Restrict, саме щоб якось розв'язати цю проблему й скласти фортрану конкуренцію (можете розглядати restrict як наслідок впливу на великий і могутній С однієї мертвої мови :rolleyes: ), хоч мені таке рішення видається не тільки не елегантним а й потенційно небезпечним та проблемним.
Власне, я хотів лише сказати цією гутаркою, що існує не лише С, не треба С надмірно фетишизувати, це безумовно цікава найвживаніша мова, але крім неї існує багато інших цікавих по своєму мов. Зрештою це тред не про найвживанішу й наймейнстримнішу мову, а про найулюбленішу.
Трохи гумору
http://habrahabr.ru/...crazydev/31541/
Оригінал тут http://lukeplant.me....p?id=1107301645.
  • 0

#146 FT232BM

    私は人々嫌い

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 3435 повідомлень
  • Стать:Чоловік
  • Місто:Київ-&gt;НТУУ &quot;КПІ&quot;

Відправлено 04.11.2009 – 00:12

Перегляд дописуkalamar (3.11.2009 23:45) писав:

Очевидно маються на увазі багатопроцесорні машини. Якщо ви користуєтесь компілятором мікрософт, то я взагалі не певен, що той компілятор зараз взагалі підтримує ті платформи, а GCC - пітримує майже все що рухається, до того ж абсолютна більшість сучасних суперкомп'ютерів на лінукс, на віндовз лише коло 1% http://www.top500.org/stats/list/33/os, тому круть-верть, якщо дійде діло до суперкомп'ютерів та якої небуть динаміки рідин, передусім доведеться мати справу із GCC (не думаю, що ряд комерційних компіляторів для тих платформ суттєво виграє у GCC, радше навпаки).
Власне той пан пояснив причину, С орієнтована на вказівники мова, причому на unrestricted pointers, й маєте проблему alias detection.
Цитата
If you look at that loop, it can be parallelized or vectorized without any problem if and only if the array pointed to by x and the array pointed to by y are completely distinct with no overlap. But there's no way to write code in C or C++ that guarantees that.
В результаті компілятор просто не може застосувати ряду оптимізацій, бо не знає, чи ті оптимізації вірні, він не може вгадати думок програміста. Фортран побудований з оглядом на оптимізацію компілятором, він навіть за рахунок обмеження деяких можливостей програмісту, спрщує задачу компілятору. Тай ряд инших мов виявляється паралелізувати чи векторизувати простіше ніж С, фортран навіть не найшвидший (автор приводить sisal, слід мабуть додати цілий ряд функціональних мов). (на однопроцесорній машині сучасний С мабуть трохи виграє у фортрана за рахунок багато більших зусиль витрачених на розробку компілятора, наслідок мейнстримності С). Й нарешті новий С99 стандарт С (трохи запізно) додав спеціальне ключове слово restrict http://en.wikipedia.org/wiki/Restrict, саме щоб якось розв'язати цю проблему й скласти фортрану конкуренцію (можете розглядати restrict як наслідок впливу на великий і могутній С однієї мертвої мови :rolleyes: ), хоч мені таке рішення видається не тільки не елегантним а й потенційно небезпечним та проблемним.
Власне, я хотів лише сказати цією гутаркою, що існує не лише С, не треба С надмірно фетишизувати, це безумовно цікава найвживаніша мова, але крім неї існує багато інших цікавих по своєму мов. Зрештою це тред не про найвживанішу й наймейнстримнішу мову, а про найулюбленішу.
Трохи гумору
http://habrahabr.ru/...crazydev/31541/
Оригінал тут http://lukeplant.me....p?id=1107301645.
А я раніше ще Python хотів спробувати)) Але потім на яві зупинився. Ви мене переконали на рахунок швидкодії Фортрана вочевидь він забив свою нішу, шкод синтаксис надто вже не звичний. Всі ми любимо такий синтаксис (*(*f)(double(*)(double)))(double) :angry1:
Але все-таки де ж ви працюєте чи ким?
  • 0

#147 bamik

    салоїд

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 2443 повідомлень
  • Стать:Чоловік
  • Місто:Івано-Франківськ

Відправлено 04.11.2009 – 00:35

Завжди цікавило, у вас не розкалується голова при програмуванні? Ще студентом вперто програмував в Delphi. Навіть здобув університетську грамоту, переможець якихось там змагань))
Так менше з тим, після години програмування мене жах як починала боліти голова. Ложив на це діло вцілому.
Як ви справляєтесь із фізичною втомою?
  • 0

#148 FT232BM

    私は人々嫌い

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 3435 повідомлень
  • Стать:Чоловік
  • Місто:Київ-&gt;НТУУ &quot;КПІ&quot;

Відправлено 04.11.2009 – 00:38

Тактика "Розділяй і володій рулить".
Хоча на сі важко програмити початківцям:

Цитата

Для начала можно упомянуть тот факт, что в C (и во всех производных языках) 1/3 будет равно 0. Т.е. выражение 1/3==0 истинно, а вот 1/3.0==0 - нет. При этом == как оператор равенства и знак равенства как оператор присваивания до сих пор взрывает неподготовленный специальным образом мозг чуть менее, чем напрочь, по ходу и в наше время являясь источником массы трудноуловимых ошибок. К тому же, в C++ все закорючки вообще могут означать все, что воспаленному мозгу кодера вздумается, при том пиздец может подкрасться совершенно ВНЕЗАПНО. (пля, шо за мудак написал это?)(очевидно человек имел в виду возможность переопределить любой оператор)
Завжли вважав Delphi розсадником бидлокоду через програмування мишкою.
  • 0

#149 bamik

    салоїд

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 2443 повідомлень
  • Стать:Чоловік
  • Місто:Івано-Франківськ

Відправлено 04.11.2009 – 00:44

Перегляд дописуFT232BM (4.11.2009 00:38) писав:

Завжли вважав Delphi розсадником бидлокоду через програмування мишкою.

Тю, на те й воно об’єктно-орієнтоване середовище
  • 0

#150 FT232BM

    私は人々嫌い

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 3435 повідомлень
  • Стать:Чоловік
  • Місто:Київ-&gt;НТУУ &quot;КПІ&quot;

Відправлено 04.11.2009 – 00:50

Перегляд дописуbamik (4.11.2009 00:44) писав:

Тю, на те й воно об'єктно-орієнтоване середовище

Ну так не в компонентах делфі його об'єкта орієнтованість виражається. Он С++ чи Java об’єктно орієнтовані і там немає такого розгільдяйства там просто прописуєш бібліотеку та створюєш об’єкт необхідного класу, а не перетягуєш компонентик та радієш)) В 10-11 класі цим заморочувався, але поріг входу новачків справді низький. А коли нема потрібного компонента прогери-початківці сльозливо бігають по форумах та випрошують)))
  • 0

#151 kavalera

    Старійшина

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 1258 повідомлень
  • Стать:Чоловік

Відправлено 05.11.2009 – 10:27

Перегляд дописуkalamar (2.11.2009 21:55) писав:

Оскільки зайшла така дискусія, я зробив пошук у гуглі, й надибав на таку думку одного інженра гугла http://scienceblogs.com/goodmath/2006/11/t...language_fa.php.
Прочитайте й гляньте на тест який він зробив, вам залишається лише сподіватись на некомпетентність цього пана :rolleyes: , бо результати тесту для С повністю провальні. С програв OCaml майже втричі, це при тому, що OCaml - мова вищого за С рівня, а також просто смішно порівнювати ресурси й зусилля витрачені на розробку компіляторів для С та OCaml.
... І як завжди, в каментах нижче, не менші специ доводять на своїх прикладах і доводах протилежну думку. :cry: І ще що цікаво, Фортран чогось в тому його змаганні не участвував)) чи участвував, та пан за результати не схотів казати. ;)
  • 0

#152 kalamar

    Старійшина

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 4207 повідомлень
  • Стать:Чоловік
  • Місто:Чорнильщина

Відправлено 05.11.2009 – 15:47

Перегляд дописуIA32 (5.11.2009 10:27) писав:

... І як завжди, в каментах нижче, не менші специ доводять на своїх прикладах і доводах протилежну думку. :rolleyes: І ще що цікаво, Фортран чогось в тому його змаганні не участвував)) чи участвував, та пан за результати не схотів казати. :cry:
Зайдіть на http://cellperformance.beyond3d.com/articl...ct-keyword.html познайомтесь із restrict у новому стандарті С. Цитата звідти
"The effect can be measured by comparing a program that uses pointers with a similar program that uses file scope arrays (or with a similar Fortran program). The array version can run faster by a factor of ten or more on a system with vector processors."
І чомусь код 90 фортрану (числовий) можна читати й розібрати навіть погано коментований, а "оптимізований" ( чомусь С++ програмісти часто пишуть на С++ ідіомами фортрана коли доходить до числових розрахунків) код С++ часто якраз нагадує 66 фортран своєю нечитовністю й розмір вихідного коду якийсь часто вдвічі більший ніж на фортрані, чудасія та й годі.
А експерти різні бувають, ось думка цього експерта вам мабуть сподобається http://phys.wordpress.com/2006/04/21/new-p...-old-computing/, оскільки любите читати коменти, то там є гарний комент від якогось mclaren. Десь так ці античні технології виглядають. Взагалі фортран досить злісний і серйозно загрожує людству, наприклад цілком можливо, що саме він відповідальний за глобальне потепління http://www.2blowhards.com/archives/2009/07...ate_models.html.
  • 0

#153 Мене тут нема!

    Частий гість

  • Користувачі
  • PipPipPip
  • 32 повідомлень

Відправлено 17.11.2009 – 00:19

C# rulezzz! :)

Також знаю:
C/C++, Pascal, Delphi, Java, SQL, трохи Assembler, Prolog, маю базові знання HTML та JavaScript

Повідомлення відредагував DJ FatCat: 17.11.2009 – 00:23

  • 0

#154 Lady Jane

    Ледар

  • Користувачі
  • PipPip
  • 13 повідомлень
  • Стать:Жінка
  • Місто:Lviv

Відправлено 10.01.2010 – 23:13

на Алго програмувати найлегше) тому улюблена)

а так,напевно, С найулюбленіша
  • 0

#155 Fry

    Профі

  • Користувачі
  • PipPipPipPipPipPipPip
  • 357 повідомлень
  • Стать:Чоловік
  • Місто:Рівне, Львів, ще десь...

Відправлено 10.01.2010 – 23:19

Напевно старий, добрий Pascal.
  • 0

#156 kavalera

    Старійшина

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 1258 повідомлень
  • Стать:Чоловік

Відправлено 10.01.2010 – 23:31

Перегляд дописуLady Jane (10.01.2010 23:13) писав:

а так,напевно, С найулюбленіша
Вау! :cry: :) :)
  • 0

#157 comdev

    Абориген

  • Користувачі
  • PipPipPipPip
  • 119 повідомлень
  • Місто:Kyiv

Відправлено 24.03.2010 – 13:52

Перегляд дописуFT232BM (2.11.2009 10:11) писав:

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

Не обов'язково. Сучасні С-компілятори проводять достатньо хорошу оптимізацію і не обов'язково ваш код вийде оптимальнішим від згенерованого потимізатором.
  • 0

#158 кокоджамбо

    Постійний житель

  • Користувачі
  • PipPipPipPipPip
  • 124 повідомлень
  • Стать:Чоловік
  • Місто:Sh{i}t

Відправлено 24.03.2010 – 23:48

Моя найулюбленіша мова програмування - це Visual Basic. Думаю, що улюблена вона тому, що з неї я почав. Вивчаю С, С++ та Assembler.
  • 0

#159 кокоджамбо

    Постійний житель

  • Користувачі
  • PipPipPipPipPip
  • 124 повідомлень
  • Стать:Чоловік
  • Місто:Sh{i}t

Відправлено 06.04.2010 – 01:08

Бейсік - зе бест. А Сі - гаМно ! хД
  • 0

#160 Amarok

    Старійшина

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 2350 повідомлень
  • Стать:Чоловік
  • Місто:Дубно -> Нетішин -> Київ -> New York

Відправлено 08.04.2010 – 04:39

Перегляд дописуDreamWeaver (5.04.2010 18:08) писав:

Бейсік - зе бест. А Сі - гаМно ! хД

типу "відсмалив", нафлудив, мінуси отримав і нафік пішов :unsure:)гг
  • 0



Кількість користувачів, що читають цю тему: 1

0 користувачів, 1 гостей, 0 анонімних