Опитування

Які мови програмування ви знаєте?

C
443 (27.2%)
C++
551 (33.8%)
Java
249 (15.3%)
Python
143 (8.8%)
Perl
139 (8.5%)
OCaml
17 (1%)
Haskell
26 (1.6%)
Lisp
63 (3.9%)

Проголосувало: 121

Автор Гілка: Мови програмування  (Прочитано 46967 раз)

Відсутній AEX_CHECKER

  • Новачок
  • *
  • дописів: 21
  • Карма: +0/-0
  • I Love YaBB 2!
Re: Мови програмування
« Відповідей #30 : 2006-11-19 22:53:45 »
Хоча я всеодно не задоволений жодною з існуючих мов. Ідеальна мова, на мій погляд, повинна мати також такі риси:
  - вбудована підтримка IoC, тобто в програмі я просто пишу, коли мені потрібен напр. хеш, "Map a=new Map();", де Map - це не об'єкт а інтерфейс, тоді як на етапі виконання вже можна буде вибрати, який саме Map буде використано: HashMap, HashTable, LinkedMap, etc.;

Рекомендую: Щптерон, Ада, !!!МАКРОСИ!!! :)))

 - підтримка групової роботи, напр. підтримка правил для коду, таких як правила для оформлення коду (напр. компілятор повинен вивалюватися з помилкою, коли використано 4 пробіли замість 1 таба, чи коли змінна не задокументована), підтримка доменів та правил для них (напр. щоб компілятор не дозволяв класам з домену View напряму звертатися до класів з доменів Controler чи Model).
  - підтримка залежностей та кешу на рівні мови (в стилі Make), напр. для методу, який довго рахує якусь величину, звертаючись до бази, можна виставити що він кешується, виставити умови через які кеш повинен скидатися і виставити залежності, які повинні виконуватися до початку виконання цього методу (напр. щоб можна було написати правило, що перед початком виконання будь-якого піблічного методу класу повинен виконатися метод init без написання if(!initialized) init(); в кожному методі).

Ці вимоги відносяться до ІСР (інтегрованих середовищ розробки) :)

Відсутній AEX_CHECKER

  • Новачок
  • *
  • дописів: 21
  • Карма: +0/-0
  • I Love YaBB 2!
Re: Мови програмування
« Відповідей #31 : 2006-11-19 23:08:09 »
які назви мов вам знайомі - англійська, німецька, хінді...
інакше кажучи - де той рівень, за яким можно сказати "я знаю цю мову"?

 ;)
Все просто - будь-яка мова програмування високого рівня має такі архетипи:
1. Типи даних
2. Оператори
3. Управляючі структури
4. Лексика и Синтаксис
все, що більше - це як віршик на пам'ять :))

Відсутній AEX_CHECKER

  • Новачок
  • *
  • дописів: 21
  • Карма: +0/-0
  • I Love YaBB 2!
Re: Мови програмування
« Відповідей #32 : 2006-11-19 23:15:40 »
... Нівряд чи кому прийде в голову писати операційну систему на php, наприклад. І не тому, що немає вправних програмістів на php а тому, що така система не буде конкурентною.
;D А мені довелося спроектувати і реалізувати спеціалізовану розподілену маштабовану операційну систему реального часу і саме за допомогою РНР :))


zzandy

  • Гість
Re: Мови програмування
« Відповідей #33 : 2006-11-20 23:46:49 »
 - підтримка групової роботи, напр. підтримка правил для коду, таких як правила для оформлення коду (напр. компілятор повинен вивалюватися з помилкою, коли використано 4 пробіли замість 1 таба, чи коли змінна не задокументована), підтримка доменів та правил для них (напр. щоб компілятор не дозволяв класам з домену View напряму звертатися до класів з доменів Controler чи Model).
  - підтримка залежностей та кешу на рівні мови (в стилі Make), напр. для методу, який довго рахує якусь величину, звертаючись до бази, можна виставити що він кешується, виставити умови через які кеш повинен скидатися і виставити залежності, які повинні виконуватися до початку виконання цього методу (напр. щоб можна було написати правило, що перед початком виконання будь-якого піблічного методу класу повинен виконатися метод init без написання if(!initialized) init(); в кожному методі).

Ці вимоги відносяться до ІСР (інтегрованих середовищ розробки) :)

+1

... В мене тільки оджне питання, чи бачиви ви коли небудь програму на Паскалях, яка б за розміром наближалася до OpenOffice ....

 ;D Все програмне забезпечення для танків Абрамс, Літаків Боінг та ПРО, реалізовано за допомогою АДИ (діалект Пскаля).
http://en.wikipedia.org/wiki/Ada_programming_language

Тут я не впевнений, але, здається, згадані програми набагато менші за розмірами (коду) ніж офіс.

http://en.wikipedia.org/wiki/Ada_programming_language:
Цитата
The maiden flight loss of Ariane 5 Flight 501, a European Space Agency Ariane 5 launcher, was due to an error in a program written in Ada for checks of the launcher while on the ground. During the beginning of the flight a run-time error occurred that was not covered by Ada exception handlers and therefore propagated to the main guidance program leading to main processor shut down and loss of guidance. Since the same program worked well for all the flights of the Ariane 4 it had been reused directly for Ariane 5. However, the flight parameters of Ariane 5 were different, causing a run-time error. The incident led to discussions on the use of Ada as a possible contributing factor, in particular concerning the design of Ada's run-time error handling.

Я читав про це десь, але там так повідомлялося, ніби то були проблеми повторного використання коду а тут от як - часткова вина на Аді.

... Нівряд чи кому прийде в голову писати операційну систему на php, наприклад. І не тому, що немає вправних програмістів на php а тому, що така система не буде конкурентною.
;D А мені довелося спроектувати і реалізувати спеціалізовану розподілену маштабовану операційну систему реального часу і саме за допомогою РНР :))

За це вам великий респект. Цікаво, як ви на php писали драйвери і планувальник процесів, і  де виконувався інтерпретатор!?

PS: Тепер у вас аж сім постів в загальному заліку замість одного великого - правда класно?

Відсутній rangel

  • Графоман
  • ****
  • дописів: 281
  • Карма: +0/-0
  • Python programmer
Re: Мови програмування
« Відповідей #34 : 2006-11-21 11:09:46 »
Щодо тези про авторство Вірта, як аргумент на користь Pascal. Мені в свій час було цікаво почитати про це спогади самого Вірта. Не знаю на ск. правдивий матеріал, але з статті випливало, що мова почалася, як жарт над поганими студентами. А потім виявилося, що її так і реалізували.
На жаль посилання я загубив, але думаю в неті можна накопати.
Roman Suprotkin

Відсутній miwa

  • Літератор
  • ******
  • дописів: 1111
  • Карма: +0/-0
Re: Мови програмування
« Відповідей #35 : 2006-11-21 15:00:05 »
Пошук навскидку нічого не дав - паскаль справді (суддячи по його результатах) створювався як мова для навчання.

З іншого боку свого часу був жартівливий текст про С, авторство котрого (тексту, а не компілятора) приписувалось, здається, не то Б.Кернігану, не то Г.Рітчі. Там і справді говорилось, що вони (нібито) пробували створити мову, на котрій ніхто не зможе програмувати із-за складності синтаксису. Як приклад, наводився рядок симолів, котрий компілятор С коректно обробляє.
Читайте документацію - вона кермує.

zzandy

  • Гість
Re: Мови програмування
« Відповідей #36 : 2006-11-21 17:46:00 »
Продовжуючи літ. огляд без посилань на джерела, можу поділитися наступним. Я десь читав (природно не пам'ятаю - де) що в один історичний момент склалася ситуація, коли тільки лінивий не вмів програмувати на FORTRAN чи COBOL. А раз пропозиція програмістів була високою, їх платня знижувалася. Тоді, зі згадкою про часи, коли крутих програмістів було мало, а їх зарплатня була височенною, і задля повернення тих часів, була вигадана мова С - складна задля того щоб збільшити ценз її освоєння, обмежити кількість спеціалістів у цій мові і забезпечити цим спеціалістам високий рівень оплати.

Відсутній Cthulhu

  • Кореспондент
  • ***
  • дописів: 183
  • Карма: +0/-0
Re: Мови програмування
« Відповідей #37 : 2006-11-21 21:42:08 »
Панове, а ви не плутаєте C з BrainFuck?))) Я, звичайно, історичної літератури на цю тему не читав, але все ж якось не правдоподібно виходить.

Відсутній o.pash

  • Новачок
  • *
  • дописів: 3
  • Карма: +0/-0
  • I Love YaBB 2!
Re: Мови програмування
« Відповідей #38 : 2006-11-21 23:29:42 »
Продовжуючи літ. огляд без посилань на джерела, можу поділитися наступним. Я десь читав (природно не пам'ятаю - де) що в один історичний момент склалася ситуація, коли тільки лінивий не вмів програмувати на FORTRAN чи COBOL. А раз пропозиція програмістів була високою, їх платня знижувалася. Тоді, зі згадкою про часи, коли крутих програмістів було мало, а їх зарплатня була височенною, і задля повернення тих часів, була вигадана мова С - складна задля того щоб збільшити ценз її освоєння, обмежити кількість спеціалістів у цій мові і забезпечити цим спеціалістам високий рівень оплати.

Ви, напевно, маєте на увазі гумореску "An Interview with Bjarne Stroustrup" про С++ ( http://www.ariel.com.au/jokes/An_Interview_with_Bjarne_Stroustrup.html ). Та щоб невиникло недорозуміння дивитись також http://www.research.att.com/~bs/bs_faq.html#IEEE .

Відсутній o.pash

  • Новачок
  • *
  • дописів: 3
  • Карма: +0/-0
  • I Love YaBB 2!
Re: Мови програмування
« Відповідей #39 : 2006-11-21 23:41:50 »
Щодо опитування... Оскільки в списку з'явилися Haskell та Lisp, то я б ще додав Prolog, що і являється моїм фаворитом. Серед процедуральних мов -- Python, можливо теж Ruby та Java.

zzandy

  • Гість
Re: Мови програмування
« Відповідей #40 : 2006-11-22 09:48:15 »
Ви, напевно, маєте на увазі гумореску "An Interview with Bjarne Stroustrup" про С++ ( http://www.ariel.com.au/jokes/An_Interview_with_Bjarne_Stroustrup.html ). Та щоб невиникло недорозуміння дивитись також http://www.research.att.com/~bs/bs_faq.html#IEEE .
Саме так, дякую.

Відсутній gvy

  • Письменник
  • *****
  • дописів: 576
  • Карма: +0/-0
Re: Мови програмування
« Відповідей #41 : 2006-11-22 16:28:03 »
Те, що Pascal створювався як учбова мова нічого не означає, мабуть потрібно   дивитись на сучасний стан мови, а не на той, який був 20 років тому.
Та який там стан -- гидотою був, гидотою й залишився.  З алґолоподібних віртівського напрямку дуже приємною, хоча теж дуже "бовтливою", була Modula-2.

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

В мене десь так: asm (8086) -- читав, але проігнорував; C -- читав, писав, час від часу доводиться виправляти; C++/Java -- голова болить, я таке не їм; Perl/Python/PHP/SQL -- були дещо різні наміри опанувати, які не набули достатніх практичних наслідків (хоча читати та виправляти доводиться частіше, ніж хотілося б); Ruby -- улюблена мова для скриптування, яке не влазить в shell; shell та трошки awk на додаток до coreutils та решти -- багато читав (у т.ч. нетривіального та дуже красивого), досить багато писав; LISP -- колись починав з книжок по ньому, зараз потроху читаю/корябаю на Scheme; до речі, якраз лісп, мабуть, врятував від згубного (за Дійкстрою :) дихання BASIC, на якому (GW/Turbo/Quick, МС0511 та сінклерівський) було колись багато прочитано та написано; ну й вже згадані Pascal (переважно Turbo, але колись й fpc збирав в альт) та Modula-2 (JPI TopSpeed v1/2/3.x).

Дививсь також в різні роки на Fortran (гидота), Forth (цікаво, але не було де погратися), Алгол-60 (теж не було, то по книжці), ще щось, мабуть.

2 fisher re "назви мов": ага, ага 8-)
« Змінено: 2006-11-22 16:29:36 від gvy »

Відсутній gvy

  • Письменник
  • *****
  • дописів: 576
  • Карма: +0/-0
Re: Мови програмування
« Відповідей #42 : 2006-11-22 16:43:14 »
Головна причина, чому я не планую вчити  С/С++ це те, що я дуже ціную  свій час, якого завжди не вистачає.  [...] машина Pentium 2 350 Mhz.
Іване, ось не треба тут розповідати, що Ви цінуєте свій час за допомогою PII 350.  Бо це брехня.  В мене вдома старенький Athlon XP 2500+/512M із 21" (бо я ще й зір ціную), але якщо буде треба збирати щось важке саме вдома -- то тут швидко опиниться щось ближче до Athlon X2.  Бо воно таки хутке та досить домашнє за ціною.  А так вистачає 4-way Woodcrest із 4Gb RAM та SATA+SCSI в офісі.

тільки збиралось це чудо більше години!  Я був просто вражений, я звик, що Delphi компілює за 2-3 хв, ну можливо для великого проекту хвилин 10, але годину  15 хв...
Візьміть якісь прості завдання на швидкість (один алгоритм для винаходження простих чисел, наприклад) та напишіть/зберіть там та тут.  Щось мені нагадує, що gcc тих часів, коли він нічого особливо оптимізувати та перевіряти не вмів, компіляв теж набагато швидше, ніж 2.9x чи 3.x+.

Цікаво скільки часу йде на збірку  дистрибутиву Linux або хоча б OpenOffice?
На музейному експонаті -- більше доби на OOo (воно на P4-3.0/1.5Gb чи як там збирається ~17 годин).

І як і всі реалізації Pascal має строгий контроль типів, однопрохідний, швидко компілює, простий і легкий у вивченні і т.д.
Ага, а також їсть дуже багато часу.  Люди, які власне цінують свій час -- зазвичай замість пасквілю використовують чомусь Ruby, Python, Perl чи вже функціональні мови програмування.

Тому я не бачу змісту витрачати час на вивчення іншої мови, яка не дасть мені ніякої переваги, скоріше навпаки.
Та Ви взагалі нічого не бачите, не прийміть за образу.

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

PS: комусь потрібний dual Pentium 233 для SMP-експериментів?

Відсутній gvy

  • Письменник
  • *****
  • дописів: 576
  • Карма: +0/-0
Re: Мови програмування
« Відповідей #43 : 2006-11-22 16:47:13 »
Я не знайомий з Oberon, але мені здається, що це щось на зразок Haskell.
Ні, оскільки пам'ятаю (ліньки навіть гугля запитати).  Оберон -- це продовження імперативних мов у ряду Pascal/Modula-2/Modula-3, а хаскель -- то функціональна мова (здається, із жорсткою типізацією).

В будь якому разі, такі мови дозволяють оробити деякі речі одним радком (замість 20 в С/C++) але це не простота, а такі мови нішові.
Ні.  Це automatic memory management в першу чергу.

Ви не зможете написати офіс на Haskell як би не хотіли.
Чому?  Он ejabberd, написаний на Erlang (теж мова ФП), краще за jabberd на C й у тій самій ніші.  Наприклад, від sim не валився, на відміну од.

Відсутній gvy

  • Письменник
  • *****
  • дописів: 576
  • Карма: +0/-0
Re: Мови програмування
« Відповідей #44 : 2006-11-22 17:03:41 »
 - підтримка залежностей та кешу на рівні мови (в стилі Make), напр. для методу, який довго рахує якусь величину, звертаючись до бази, можна виставити що він кешується, виставити умови через які кеш повинен скидатися
В Programming Ruby це один з нетривіальних прикладів, але реалізація -- десь на дюжину рядків.  Знайди в Classes and Objects таке:
The once feature is generally applicable---it should work for any class.
If you took once and made it a private instance method of class Module,
it would be available for use in any Ruby class.

і виставити залежності, які повинні виконуватися до початку виконання цього методу (напр. щоб можна було написати правило, що перед початком виконання будь-якого піблічного методу класу повинен виконатися метод init без написання if(!initialized) init(); в кожному методі).
Ось такого щось ніде не пригадаю.  Насправді узагальнених бібліотек врахування формалізованих залежностей теж біля мов програмування не вистачає, НМД.  Й дуже багато часткових реалізацій в ітозі -- від ядра до apt.