Автор Гілка: Середовище розробки  (Прочитано 31809 раз)

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

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Середовище розробки
« Відповідей #60 : 2009-10-05 18:25:27 »
Так, але що більш зрозуміло:

якщо відповідь == "Так":
  написати "Ну, давайте працювати разом!"
інакше якщо відповідь == "Ні":
  написати  "Що ж, китайська мова  цінна не як мова програмування. "
інакше:
  написати "Будь-ласка, уважно прочитайте і спробуйте відповісти на це питання ще раз."

Чи: if (somestr.equals("foo") ...? А я власне про цей бар'єр і говорю.

Цитата
А що складного у програмуванні звичайною мовою?

Тому що вона занадто гнучка і тому її дуже важко розібрати (певно ви займались Natural Language Processing і знаєте про що я говорю). Це буде море баґів або непередбачених моментів, які потім будуть ще-й обсуджуватись лінґвістами. :-)

Як я знаю з власного досвіду, ключове слово "шо?" ліквідовує будь-яку неоднозначність. Ви переплутали обробку живої мової (яку часто важко зрозуміти навіть живим людям — подивіться скільки флеймів в інтернеті через банальне непорозуміння) і написання однозначної програми (опис алгоритму, чи опис фактів з бази знань, чи опис правил) звичайною мовою.

У вас травмовано мозок? Ви не можете передати, що саме робить код програми, своїми словами?

Цитата
Вважається, що ідеальність - це коли вже не можна відкинути нічого зайвого - все на своїх місцях і все виконує свою функцію.
Абсолютно згоден. Тому тут і буде біда якраз: натуральна мова тільки принесе купу зайвого до того зайвого що вже є. Докажіть зворотнє.

Я не знаю, що таке натуральна мова (мова тварин, генетично закодована мова?). Але я думаю, що *людині* абсолютно по барабану проблеми комп’ютера. І тут варто враховувати тільки думку людей. А людина просто подумає: "на х... я буду вчити N років мову X, потім M років мову Y, якщо я можу написати інструкцію прямо тут і зараз"?

По-перше, я собі не суперечу, а по-други ви ніц з тего не зрозуміли. :) Що я казав: що програми пишуться людьми для компютерів. Що там вже вийде в машинний код — то таке. Але коли компілятор собі голову зверне на фразеологічних зворотах української чи бо-зна якої іншої, то як на мене ця ідея утопічна.
А я, відповідно, писав що програми пишуться комп’ютерами для людей? Ви саме так мене зрозуміли і це, на вашу думку, правильна інтерпретація моїх слів?


Цитата
Може так статися, що перекласти всі знання і всі програми світу на українську (чи китайську) буде економічно вигідніше.
Ага, і потім вчити китайську 10 років... та вічно розпитувати місцевих китайський бабусьок що за холєру значить ота закарлючка... :)))
Я навіть не можу уявити, коли ви народилися і скільки років живете в землянці. Комп’ютерні перекладачі з’явилися дуже давно. І я навіть не можу собі уявити комп’ютерну програму, яка однозначно сприймається комп’ютером але яку не можна перекласти на звичайну мову (будь-яку).

Цитата
Я хоч і люблю Яву, сам віддаю перевагу або Перлу або Яваскрипту або Башу так як від них менше руки болять.
Гмм-гмм-гмм. Трохи дивне порівняння. Java все-ж таки не для написання 5-ти строчного скриптика для марципанізованого копіювання файлів з одного місця в інший...
Ну якщо переписати його на Яві, то там буде далеко не 5 рядочків, хоча і значно менше чим на Сі.

Цитата
Я думаю, що Яваскрипт скоро стане мовою номер 1 для прикладного програмування
Не стане. Це динамічна мова і залишиться у просторі скриптів. Щодо самої Java, то саме вона якраз і має отой файний баланс між динамікою (Class ForName, рефлекція, JSR 294, JSR 291, JSR 277 і т.д.) та строгою статикою, що однозначно дає величезну перевагу на дуже великих системах.
Тільки ця перевага - над статичними мовами, такими як Сі. Вам тикнути пальцем на великі проекти на динамічних мовах?

Але мушу сказати, що для юзерленду Rhino в мене чудово вбудовується для всяких користувацьких правил потоків роботи (workflow), які все-ж краще писати коротенькими вставочками на JS, ніж ліпити жахливі гори в XML та процесити XSL, шоб він здох.
І я про те.
[Fedora Linux]

Відсутній BM

  • Кореспондент
  • ***
  • дописів: 162
  • Карма: +0/-0
  • SUSE Linux Products GmbH
Re: Середовище розробки
« Відповідей #61 : 2009-10-09 07:23:19 »
Як я знаю з власного досвіду, ключове слово "шо?" ліквідовує будь-яку неоднозначність.
Це не слово, а запитання. І взагалі, слово «шо» — це syntax error. Правильно «що».

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

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

У вас травмовано мозок? Ви не можете передати, що саме робить код програми, своїми словами?
Повторюю, так-би мовити, нетравмованому на мозок, втретє: написання такого компілятора буде вимагати титанічних зусиль (і принесе з собою зільйон баґів), або це буде те-ж саме, що й написання yet another language, типу i18n/l10n. Програмувати на LISP/форті — дякую, нехай це їсть хтось інший.

Але я думаю, що *людині* абсолютно по барабану проблеми комп’ютера. І тут варто враховувати тільки думку людей. А людина просто подумає: "на х... я буду вчити N років мову X, потім M років мову Y, якщо я можу написати інструкцію прямо тут і зараз"?
Я розумію про що ви говорите, особливо коли йдеться мова про нетравмованих на мозок гальм, що вчать одну компютерну мову роками...  ;D Може вони не тим займаються?.. Особисто мені щоби вивчити було С++, треба було аж два дні (сорі, я не геній), бо якраз тоді мені треба була спеціальна прив'язка обробки CKJV на Python. А тут розумніші за мене люди й за швидше вчать це саме.

Але як казав Антонов про креслення нового літака: «нє полєтіт». Причому отой «неполіт» станеться одразу після того, коли наступну інструкцію українцям напише індус санскритом, а третю хтось із Уельсу — валлійською. Тоді вже не тільки мову N, X, Y вчити прийдеться, але й албанську та сваґілі теж. В той час, коли світ об'єднується міжнародною де-факто англійською (китайці зараз он цілими стадіонами її вчать і навідріз не хочуть розмовляти китайською), то Володимир Лісівка всім пхає локальну... Ви ото краще Біблію почитайте де про Вавілонську вежу. Щоби не повторювати історію за наявності неосвіченої голови... :-)

*BM знизує плечима, закочує очі, глибоко зіткає у затяжному зівку* :-/

Я навіть не можу уявити, коли ви народилися і скільки років живете в землянці. Комп’ютерні перекладачі з’явилися дуже давно. І я навіть не можу собі уявити комп’ютерну програму, яка однозначно сприймається комп’ютером але яку не можна перекласти на звичайну мову (будь-яку).
Congratulations що ви більше не живете у землянці та врешті почули про "laugh generators". Але пропонувати людям не тільки думати чого та програма їм не працює по бізнес логіці, а ще-й в добавок паритись із кожною новою стрічкою щоб перекласти з різних мов — пліснява свідомість...

Цитата
Я хоч і люблю Яву, сам віддаю перевагу або Перлу або Яваскрипту або Башу так як від них менше руки болять.
Гмм-гмм-гмм. Трохи дивне порівняння. Java все-ж таки не для написання 5-ти строчного скриптика для марципанізованого копіювання файлів з одного місця в інший...
Ну якщо переписати його на Яві [...]
І не треба. Я-ж і казав що то *дивне* порівняння, бо Perl/Python/Bash якраз для коротких програм. Ваша біда в тому, що ви спершу навпопад пишете випадкову відповідь, а потім при рідкому бажанні частково читаєте що вам кажуть — яскравий приклад типового слав'янізму.

Тільки ця перевага - над статичними мовами, такими як Сі. Вам тикнути пальцем на великі проекти на динамічних мовах?
Ткніть звичайно, якщо зможете. Тільки в такі проекти, що дійсно великі та справді їх можна використовувати і не забувайте про швидкодію. На Python був написаний Zope + Plone. Оскільки це найбільший проект що можна знайти, все-ж ще не є достатньо великим, які робляться на статичних мовах. Як парсить Arial.ttf ReportLab — мені відомо, бо той програміст що писав підтримку Unicode TTF для ReportLab колись сидів у метрі від мене, бо ми тоді разом комітили в Zope CVS... Мені-ж самому цікаво глянути що є справді такого офігєнно-великого що швидко працює без кешування, робить 10К транзакцій в секунду і все побудовано на динамічній мові. Файно, прошу, покажіть.

До вашого відома, Yahoo! пішло у бік PHP на своїх проектах тільки тому-що вони вперлись рогом у FreeBSD як über alles і хотіли щоби це робити студенти без особливих знань НЕ переписуючи вже той guestbook-like що вже там був. При цьому визнаючи що Java значно краща всеодно по швидкодії та інструментарію як платформа. Але-ж ми всі знаємо як Java паршиво підтримує бздюшні потоки...
« Змінено: 2009-10-09 07:36:18 від BM »

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

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Середовище розробки
« Відповідей #62 : 2009-10-09 12:52:32 »
Як я знаю з власного досвіду, ключове слово «шо?» ліквідовує будь-яку неоднозначність.
Це не слово, а запитання. І взагалі, слово «шо» — це syntax error. Правильно «що».
Ви піднімаєте мені настрій. :-)

Ви переплутали обробку живої мової (яку часто важко зрозуміти навіть живим людям — подивіться скільки флеймів в інтернеті через банальне непорозуміння) і написання однозначної програми (опис алгоритму, чи опис фактів з бази знань, чи опис правил) звичайною мовою.
Я нічого не переплутав і взагалі, навчіться врешті слухати людей для початку. Мова якраз і йде про те, що ваша «однозначна програма» буде використовувати словник і строгий синтаксис, відхилення від якого призведе до помилки компіляції. Тобто, це буде зміна шила на мило. Тільки з тією різницею, що Ваше мило буде третьосортне і дустове, бо ніодин китаєць чи індус не буде програмувати українською, а у мене, чесно кажучи, у найближчому часі немає планів вивчати санскрит чи тисячі китайських канджі.
Ви знову піднімаєте мені настрій. :-)
Я вам про живу мову, а ви мені — про чіткий синтаксис. Нам буде легше порузумітися, якщо ви дасте собі відповіді на такі питання:

Який синтаксис у Пролога? Як записати на пролозі предикат «тато любить маму».
Який синтаксис у імперативних мов.
Чому не можна написати мову програмування, яка використовуватиме одночасно і предикати і імперативи
Чому це без проблем можна зробити в українській мові?

Петро любить кота.
Декларація, предикат:
like("Petro", "cat").).

Якщо вірно що Петро любить кота, то напиши «Вірно», інакше напиши «Невірно». Імператив:
if(like("Petro", "cat") == true) {
   print ("True");
} else {
   print ("False");
}

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

Можу вам також ґарантувати, що вивчення англійської мови китайцю, українцю й індусу вигідніше економічно та соціально. Але ми вже пишемо мовами, що побудовані англійською, чи не так? Все впирається тільки у синтаксис, який не є натуральним та вільним для звичайної людської мови, а є зрозумілим для машин.
Ви знову піднімаєте мені настрій. :-)
Саме проблеми англійської мови призвели до появи купи різних мов програмування. Якби використовували українську, не було би пролога і пітона — нема потреби створювати дві різні мови там, де можна використати одну.


У вас травмовано мозок? Ви не можете передати, що саме робить код програми, своїми словами?
Повторюю, так-би мовити, нетравмованому на мозок, втретє: написання такого компілятора буде вимагати титанічних зусиль (і принесе з собою зільйон баґів), або це буде те-ж саме, що й написання yet another language, типу i18n/l10n. Програмувати на LISP/форті — дякую, нехай це їсть хтось інший.
Я не бачу ніяких титанічних зусиль. Я бачу досить маленький об’єм роботи — десь на півроку роботи одного програміста і одного лінгвіста.

Але як казав Антонов про креслення нового літака: «нє полєтіт». Причому отой «неполіт» станеться одразу після того, коли наступну інструкцію українцям напише індус санскритом, а третю хтось із Уельсу — валлійською. Тоді вже не тільки мову N, X, Y вчити прийдеться, але й албанську та сваґілі теж. В той час, коли світ об’єднується міжнародною де-факто англійською (китайці зараз он цілими стадіонами її вчать і навідріз не хочуть розмовляти китайською), то Володимир Лісівка всім пхає локальну… Ви ото краще Біблію почитайте де про Вавілонську вежу. Щоби не повторювати історію за наявності неосвіченої голови… :-)
Ви вже прочитали? Тепер перелічіть, будь ласка, тільки основні популярні мови програмування. Або хоча б приблизну їх кількість. А потім перейдем на малопопулярні.

*BM знизує плечима, закочує очі, глибоко зіткає у затяжному зівку* :-/

Я навіть не можу уявити, коли ви народилися і скільки років живете в землянці. Комп’ютерні перекладачі з’явилися дуже давно. І я навіть не можу собі уявити комп’ютерну програму, яка однозначно сприймається комп’ютером але яку не можна перекласти на звичайну мову (будь-яку).
Congratulations що ви більше не живете у землянці та врешті почули про «laugh generators». Але пропонувати людям не тільки думати чого та програма їм не працює по бізнес логіці, а ще-й в добавок паритись із кожною новою стрічкою щоб перекласти з різних мов — пліснява свідомість…
Нічого не зрозумів, але звучить страшно. (Ви знайомі з 1C?)

Цитата
Я хоч і люблю Яву, сам віддаю перевагу або Перлу або Яваскрипту або Башу так як від них менше руки болять.
Гмм-гмм-гмм. Трохи дивне порівняння. Java все-ж таки не для написання 5-ти строчного скриптика для марципанізованого копіювання файлів з одного місця в інший…
Ну якщо переписати його на Яві […]
І не треба. Я-ж і казав що то *дивне* порівняння, бо Perl/Python/Bash якраз для коротких програм. Ваша біда в тому, що ви спершу навпопад пишете випадкову відповідь, а потім при рідкому бажанні частково читаєте що вам кажуть — яскравий приклад типового слав’янізму.
Ви знову піднімаєте мені настрій. :-)
Ви згодні з тим що Ява — не для коротких програм. Що короткі програми на Яві переписувати не треба. Що якщо є коротка програма (чи велика купа коротких програм), то переписувати їх на Яві (чи іншій статичні мові) не треба, і т.д., але ЯВА — КРАЩА! Чим?


Тільки ця перевага — над статичними мовами, такими як Сі. Вам тикнути пальцем на великі проекти на динамічних мовах?
Ткніть звичайно, якщо зможете.
LiveJournal — perl
Amazon — perl
Twitter — ruby
Yahoo! — PHP
Wikipedia — PHP
YouTube — Python
Google AppEngine — Python
Mozilla — JavaScript
І т. д.
[Fedora Linux]

Praporshic

  • Гість
Re: Середовище розробки
« Відповідей #63 : 2009-10-09 13:12:45 »
Off-topic:
А якщо я спробую цю диво-травичку, я теж стану програмістом?

White Trash

  • Гість
Re: Середовище розробки
« Відповідей #64 : 2009-10-09 13:39:04 »
Та ви обоє піднімаєте настрій тут усім 8-)

Який синтаксис у Пролога? Як записати на пролозі предикат «тато любить маму».
Реальна мова - інструмент з високим рівнем абстракції, причому без чітких... не знаю, як це правильно обізвати, нехай буде "інтерфейсів". Коли, залежно від дуже нечітких обставин, "тато любить маму" може означати і "тато любить маму і хоче з нею одружитися", і "тато дере маму раком", і "тато любить свою маму"? Коротше кажучи, реальна мова є інструментом розрахованим на процессінг у, м'яко кажучи, недвійковій логічній машині - і перти його кудись ще як мінімум некорректно.

Саме проблеми англійської мови призвели до появи купи різних мов програмування. Якби використовували українську, не було би пролога і пітона — нема потреби створювати дві різні мови там, де можна використати одну.
Oh shi, а нічого, що ці мови, м'яко мажучи, мають різне призначення і нішу? Ви взагалі коли-небудь робили DSL?

І взагалі, давайте зробимо лісп офіційною в США, нехай ті латиноси учавлятсья зі своєю іспанською :D

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


Perl/Python/Bash якраз для коротких програм
Критерій короткості в студію. Видимо, наведені приклади проектів є 5-рядковими скриптиками?

Praporshic

  • Гість
Re: Середовище розробки
« Відповідей #65 : 2009-10-09 13:46:25 »
Який синтаксис у Пролога? Як записати на пролозі предикат «тато любить маму».

loves(dad, mom).

Відсутній BM

  • Кореспондент
  • ***
  • дописів: 162
  • Карма: +0/-0
  • SUSE Linux Products GmbH
Re: Середовище розробки
« Відповідей #66 : 2009-10-10 08:18:34 »
Ви піднімаєте мені настрій. :-)
«Сміх без причини — признак ......» © :-)

Якщо вірно що Петро любить кота, то напиши «Вірно», інакше напиши «Невірно».
Імператив:
if(like("Petro", "cat") == true) {
   print ("True");
} else {
   print ("False");
}

Я-б це написав як:
print ((like("Petro", "cat") == true) ? "True" : "False");...але менше з тим. Питання в мене було що робити з наступним (вам, бачу, все треба в картинках, бо звичайної мови не розумієте):
Якщо вірно що Петро любить кота, то напиши «Вірно», інакше напиши «Невірно».
Якщо Петро любить кота, то напиши «Вірно», в іншому випадку — «Невірно».
Якщо Петро любить кота, то напиши «Вірно». А якщо ні, тоді напиши «Невірно».
Напиши «Вірно», якщо Петро любить кота. Або тоді «Невірно».
Якщо Петро любить кота, то напиши «Вірно».  Інакше напиши «Невірно».
У випадку, коли Петро любить кота напиши «Вірно». Інакше — «Невірно».

Що перше я тут бачу? А отой супергидкий та майже всіма ненависний "Tim Toady".

P.S. Доречі, а що саме значить вираз «любить кота»? Як часто?..  ;D Але то офтопік, ОК...

Саме проблеми англійської мови призвели до появи купи різних мов програмування. Якби використовували українську, не було би пролога і пітона — нема потреби створювати дві різні мови там, де можна використати одну.
Про англійську мову будете судити вже тоді, коли її вивчите (читатимете в ориґіналі Шекспіра без словника та сопіння над одним реченням). А поки ви її зовсім не знаєте, то краще помовчіть, ОК?

Якщо вірно що Петро любить кота, то напиши «Вірно», інакше напиши «Невірно».
If true that Peter likes cat, then write "True", otherwise write "False".

Крім того, що українська тут звучить неграмотно, я ще-й бачу тут достатньо неоднозначностей в обох мовах. Знайдіть собі їх самі, в якості домашнього завдання...

Я не бачу ніяких титанічних зусиль. Я бачу досить маленький об’єм роботи — десь на півроку роботи одного програміста і одного лінгвіста.

Чудово. Тоді Prapor в руки (у якості лінгвіста)[1], а ми — зачекаємо на вашу супермову через півроку. Я її обожнюватиму та перший тестуватиму. Для цього заведу аж цілий веблог! :-)

Ви згодні з тим що Ява — не для коротких програм. Що короткі програми на Яві переписувати не треба. Що якщо є коротка програма (чи велика купа коротких програм), то переписувати їх на Яві (чи іншій статичні мові) не треба, і т.д., але ЯВА — КРАЩА! Чим?
Я такого ніде не казав що Java краща за Perl чи Python або навпаки. Зробіть ще й четверте зусилля зрозуміти про що вам насправді говорили.

LiveJournal — perl
Amazon — perl
Twitter — ruby
Yahoo! — PHP
Wikipedia — PHP
YouTube — Python
Google AppEngine — Python
Mozilla — JavaScript
І т. д.

Я просив ткуни пальцем в проекти, які мають десятки тисяч *транзакцій* за секунду (це, знаєте, коли на диск щось пишеться, а не з нього читається). Допоможу що саме я хочу побачити: FOX (Fusion Order eXecution), Forex FXCM та ін. А все те, що ви тут понаводили — працює в основному через кешування. Так, Wikipedia в основному читається, записи там не часті, і має перед носом масивну інфраструктуру кешу (на Squid). Забери кеш Squid, і Wikipedia стане дико повільною. Причому людина, яка ото робила — мій добрий знайомий та розказував деталі. :) Так само й Twitter (знайомих там, на жаль, немає) — все тримає в памяті та кеші. Якщо йому кеш онулити, то це їм катастрофа і весь Twitter просто стане раком (про це каже Evan Weaver, що веде інфраструктуру твіттеру — можете собі почитати його блоґ).

А чого-ж ви не привели до прикладу Facebook? Вони-ж теж починали з «крутої» PHP і навіть фронт у них на PHP досі лишився. У мене якраз там теж дуже добрі знайомі в інфраструктурі працюють, так-що я знаю деталі... :-)

Крім того:
1. Amazon — неправда. Perl там тільки стара частина, яка була актуальна роки тому. Зараз вони також масивно роблять проекти на Java, С/С++ та ін.
2. Про Yahoo! я вже говорив (треба повторювати?) — вони на PHP не тому що вона така cool, а зовсім з інших причин.
3. Twitter — більше вже неправда. Вони переходять на Scala та Java, бо не слухали що Gosling казав про Ruby. Крім того, вони багато пишуть на С та привязують до Ruby. Тепер зрозуміли що RoR — г*вно, а Ruby в самому принципі не годиться для enterprises, бо має серйозні проблеми з масштабуванням. Доречі, те-ж саме вважають і в самій Японії — батьківщині Ruby.
4. YouTube — так, бо Python значно краще масштабується ніж Ruby. Але там і не в Python справа, а в network bandwidth та Flash.
5. Google AppEngine також Java, PHP (через Quercus!!) та ін.
6. Про Mozilla — не зрозумів.


________________
1. Це був жарт. :)

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

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Середовище розробки
« Відповідей #67 : 2009-10-10 15:18:43 »
Ви піднімаєте мені настрій. :-)
«Сміх без причини — признак ……» © :-)
«Сміх без причини — ознака буратини». ;-)


Я-б це написав як:
print ((like("Petro", "cat") == true) ? «True» : "False");
А компілятор не здуріє від такого різномаїття? :-)


…але менше з тим. Питання в мене було що робити з наступним (вам, бачу, все треба в картинках, бо звичайної мови не розумієте):

Якщо вірно що Петро любить кота, то напиши «Вірно», інакше напиши «Невірно».
if like "petro" "cat"; then echo "True"; else echo "False"; fi
Якщо Петро любить кота, то напиши «Вірно», в іншому випадку — «Невірно».
if(like("petro", "cat")) { print("True"); } else { print("False"); }
Якщо Петро любить кота, то напиши «Вірно». А якщо ні, тоді напиши «Невірно».
like "petro" "cat"
case $? in
 0) echo "True";;
 1) echo "False";;
esac

і т.д


Що перше я тут бачу? А отой супергидкий та майже всіма ненависний «Tim Toady».
Ви яскраво демонстуєте знання виключно імперативних мов програмування. Давайте, для перевірки, запишемо алгоритм роботи зі стеком на Пролозі (декларативний стиль програмування). Це не тяжко - там буквально один рядок коду. Потім можете переписати його в імперативному стилі (біля сторінки коду).

P.S. Доречі, а що саме значить вираз «любить кота»? Як часто?..  ;D Але то офтопік, ОК…
Так само часто, як ви любите пиріг з яблуками. Ви ж його любите, правда?
Ви російське «любит» з українським «кохає» не переплутали часом?

Саме проблеми англійської мови призвели до появи купи різних мов програмування. Якби використовували українську, не було би пролога і пітона — нема потреби створювати дві різні мови там, де можна використати одну.
Про англійську мову будете судити вже тоді, коли її вивчите (читатимете в ориґіналі Шекспіра без словника та сопіння над одним реченням).
Продемонструйте, будь ласка, ваші знання англійської 16-го сторіччя:
http://doyle.lib.muohio.edu/cdm4/document.php?CISOROOT=/wshakespeare&CISOPTR=45&REC=1

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

А поки ви її зовсім не знаєте, то краще помовчіть, ОК?
Не кажи що мені робити і я не казатиму, куди тобі іти. Гаразд?

Якщо вірно що Петро любить кота, то напиши «Вірно», інакше напиши «Невірно».
If true that Peter likes cat, then write «True», otherwise write «False».
Поздоровляю! Ви справилися з половиною завдання! А друга половина де? Як відрізнити дієслово «print» (друкувати) від іменника «print» (відбиток) в англійській мові? Як написати «write» в наказовій формі, щоб не плутати «писати» і «напиши»? «write now»?

Крім того, що українська тут звучить неграмотно, я ще-й бачу тут достатньо неоднозначностей в обох мовах. Знайдіть собі їх самі, в якості домашнього завдання…
Ти ще школяр, чи що?

Я не бачу ніяких титанічних зусиль. Я бачу досить маленький об’єм роботи — десь на півроку роботи одного програміста і одного лінгвіста.

Чудово. Тоді Prapor в руки (у якості лінгвіста)[1], а ми — зачекаємо на вашу супермову через півроку. Я її обожнюватиму та перший тестуватиму. Для цього заведу аж цілий веблог! :-)
Для цього не потрібно чекати аж так довго. Мову ви вже знаєте. ;-)

Я просив ткуни пальцем в проекти, які мають десятки тисяч *транзакцій* за секунду (це, знаєте, коли на диск щось пишеться, а не з нього читається).
Amazon SimpleDB — Erlang.

PS.
Я піднімав http://bazaarvoice.com/ від самого початку. Коли я звідти йшов, він тримав 2ТБ в день. Якщо дуже хочете, я можу розказати чому я, а не знайомий мого знайомого, приймав рішення напр. використовувати Баш замість Яви.
[Fedora Linux]

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

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Середовище розробки
« Відповідей #68 : 2009-10-10 15:48:44 »
Та ви обоє піднімаєте настрій тут усім 8-)

Який синтаксис у Пролога? Як записати на пролозі предикат «тато любить маму».
Реальна мова - інструмент з високим рівнем абстракції, причому без чітких... не знаю, як це правильно обізвати, нехай буде "інтерфейсів". Коли, залежно від дуже нечітких обставин, "тато любить маму" може означати і "тато любить маму і хоче з нею одружитися", і "тато дере маму раком", і "тато любить свою маму"? Коротше кажучи, реальна мова є інструментом розрахованим на процессінг у, м'яко кажучи, недвійковій логічній машині - і перти його кудись ще як мінімум некорректно.
Ви ж знайомі з проблемою контексту, правда?  Ви ж знаєте як вона вирішується чи просто приколюєтеся? mom може означати як this.mom, так і dad.mom, а likes може теж багато чого означати. Як вирішується ця проблема зараз?

Але, навіть якщо комусь щось не зрозуміло, чому не можна просто запитатися? Ви ж знайомі з Прологом, правда? Ви ж знаєте, що означає likes(dad, X). ?

Крім того, ви плутаєте російську з українською: "любити" не означає "кохати" чи "займатися сексом".

Саме проблеми англійської мови призвели до появи купи різних мов програмування. Якби використовували українську, не було би пролога і пітона — нема потреби створювати дві різні мови там, де можна використати одну.
Oh shi, а нічого, що ці мови, м'яко мажучи, мають різне призначення і нішу? Ви взагалі коли-небудь робили DSL?
А ви пробували читати те, що я пишу? Ви, в повсякденному житті використовуєте різні мови, в залежності від призначення і ніші, чи просто різні терміни в межах однієї мови?


Потрібен ще професійний кат, бо інтерпретатор буде крутитись в мозку лінгвіста, а програмісту потрібен дебаггер.
Нічого не зрозумів. Але, між іншим, я не користуюся відлагоджувачем вже досить давно. Якщо програма не може сказати де в неї болить, то запускати її в виробництво не можна - там її відлагоджувати часто просто немає можливості.
[Fedora Linux]

Praporshic

  • Гість
Re: Середовище розробки
« Відповідей #69 : 2009-10-10 21:51:56 »
Чудово. Тоді Prapor в руки (у якості лінгвіста)
.....
 Це був жарт. :)
1. Я важу понад 100 кг. Це без лептопа та стандартного адміністраторського спорядження (телефон, ніж, АК-47  ::) ) Посередній програміст надірветься.
2. Мову що вийде, не можна буде розповсюджувати - казармену лайку вже засекретили військові.  :P
3. Відповідь на питання я дізнався у нашого autotesting project leader...

У мене жарти кращі ;)

Відсутній BM

  • Кореспондент
  • ***
  • дописів: 162
  • Карма: +0/-0
  • SUSE Linux Products GmbH
Re: Середовище розробки
« Відповідей #70 : 2009-10-11 08:12:13 »
1. Я важу понад 100 кг. Це без лептопа та стандартного адміністраторського спорядження (телефон, ніж, АК-47  ::) ) Посередній програміст надірветься.
2. Мову що вийде, не можна буде розповсюджувати - казармену лайку вже засекретили військові.  :P

Я все це якраз знаю. :-) Тому й хотів створити такий місцевий афоризм: «Prapor тобі в руки»... :)

Відсутній BM

  • Кореспондент
  • ***
  • дописів: 162
  • Карма: +0/-0
  • SUSE Linux Products GmbH
Re: Середовище розробки
« Відповідей #71 : 2009-10-11 09:19:52 »
Цитата
«Сміх без причини — признак ……» © :-)
«Сміх без причини — ознака буратини». ;-)

А, точно. Дякую за поправку мого русизму. Проте воно суті всеодно не міняє... :)

Поздоровляю! Ви справилися з половиною завдання! А друга половина де? Як відрізнити дієслово «print» (друкувати) від іменника «print» (відбиток) в англійській мові?

Для початку її вивчити, як я вже казав... Іменник насправді "the print". Складніше, якщо не йде мова про стан: "the news will never get into print" — але тут програмування я не бачу... Також (привітання Tim Toady ще раз!) можна: "be printed". Тобто: "If Peter likes cat, on the standard terminal output should be printed "True", otherwise "False". Так зрозуміліше?

Як написати «write» в наказовій формі, щоб не плутати «писати» і «напиши»? «write now»?
"to write". Але в тому то й справа, як я вже десять постингів казав назад: жива мова вимагає розуміння контексту, тому й говорив Natural Language Processing...

Для цього не потрібно чекати аж так довго.
Чудово. Час пішов. Покажіть свій masterpiece хоча-б у вигляді реального прототипу, яким можна щось реальне зробити, а не тупо написати «Привіт, світ!».

Amazon SimpleDB — Erlang.
Хахахаха!! ;D Errlang... ;D Видно, пан намертво забули що таке транзакція? До вашого відома, кусок г*вна той SimpleDB.

Чому? Бо там взагалі нема пояття транзакцій як таких — воно оптимізовано на чимшвидші записи на диск (причому робить досить повільно, і 5K/s навіть близько не пахне, за більше взагалі мовчу). Там немає ні ACID, ні ґарантії цілісності даних, ні взагалі будь-якої ґарантії що записані дані одразу появляться при читанні... Більше того, SimpleDB може запросто втратити дані. Це — ваш такий Enterprise? Дякую, не треба.

Саме головне, що SimpleDB ще-й повільна, зважаючи на її «рахітектуру»: при тестах SimpleDB було встановлено, що 10 записів може бути витягнуто десь за 140ms з таблиці, що має одну тисячу записів. Десь за 270ms з таблиці, що має сто тисяч записів, і 430ms з таблиці, що має мільйон записів. Тьху... :-/ Додай сюди ліміт 10G на домен і все стає одразу зрозуміло.

Ще є купа інших причин чому SimpleDB дурня, але то вже по темі "developer experience", тому кому цікаво — пишіть приватно. Кому треба distributed database на key/value але нормальну з транзакціями і все як має бути:  Project Voldemort — значно кращий. Його використовує LinkedIn.

Словом, нєзачот. Try harder.

Я піднімав http://bazaarvoice.com/ від самого початку. Коли я звідти йшов, він тримав 2ТБ в день. Якщо дуже хочете, я можу розказати чому я, а не знайомий мого знайомого, приймав рішення напр. використовувати Баш замість Яви.

Ага. Є такі унікуми (ніколи-б не наняв на роботу і десятому заказав оминати). Пишуть взагалі цілі вебсервери та бази даних на одному тільки bash/perl. Їх результат кохання можна виразити асемблером:

PUSH   AX
POP    AX
PUSH   AX
POP    AX
PUSH   AX
POP    AX
PUSH   AX
POP    AX
PUSH   AX
POP    AX
PUSH   AX
POP    AX
PUSH   AX
POP    AX

INT    10h
« Змінено: 2009-10-11 09:23:08 від BM »

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

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Середовище розробки
« Відповідей #72 : 2009-10-11 23:39:19 »
Поздоровляю! Ви справилися з половиною завдання! А друга половина де? Як відрізнити дієслово «print» (друкувати) від іменника «print» (відбиток) в англійській мові?

Для початку її вивчити, як я вже казав… Іменник насправді «the print». Складніше, якщо не йде мова про стан: «the news will never get into print» — але тут програмування я не бачу… Також (привітання Tim Toady ще раз!) можна: «be printed». Тобто: "If Peter likes cat, on the standard terminal output should be printed «True», otherwise «False». Так зрозуміліше?
Означений артикль «the» (чи неозначений "a") створює однозначний контекст а не робить однозначним слово. Саме проблема контексту призводить до кострубатості сучасних мов програмування. В українській мові слово «напиши» розуміється однозначно без потреби у визначенні контексту — це значна перевага.

«to write». Але в тому то й справа, як я вже десять постингів казав назад: жива мова вимагає розуміння контексту, тому й говорив Natural Language Processing…
А я пишу про щось інше? Чи може я десь пропоную займатися розпізнаванням живої мови? Якщо пан підніметься вище і прочитає, то буде знати що мова йде про двохкомпонентну систему — саму програму написану нормальною мовою і експертну систему, задачею якої є розбір тексту цієї програми при допомозі набору правил і словника. І що подібний підхід вже використовується програмістами на Форті, Постскрипті, Ліспі, Пролозі і деяких інших мовах — програмісти часто пишуть окремо словник і окремо програму з допомогою слів з цього словника (а також часом пишуть додаткові правила для розбору тексту). До речі, сам словник можна використовувати і окремо від програми — наприклад в інтерактивному режимі.

Для цього не потрібно чекати аж так довго.
Чудово. Час пішов. Покажіть свій masterpiece хоча-б у вигляді реального прототипу, яким можна щось реальне зробити, а не тупо написати «Привіт, світ!».
Я вся тремтю. :-)

У мене немає готового прототипу. Все що у мене є — це купа експериментів на різних мовах програмування. Найкращий варіант який у мене є — це YieldProlog на Яваскрипті (gjs), які дозволяють змішувати декларативний і імперативний стилі програмування. З парсером я зараз розбираюся.

На приклад можете подивитися у києвлян (недавно натрапив на їхню сторінку): http://neurotechnica.info/?page_id=4 .

Amazon SimpleDB — Erlang.
Хахахаха!! ;D Errlang… ;D Видно, пан намертво забули що таке транзакція? До вашого відома, кусок г’вна той SimpleDB.

Словом, нєзачот. Try harder.
Я вам навів приклади великих систем, які написані динамічними мовами і які використовуються лідерами індустрії, пане поліглот. Як ви до цього ставитеся — це ваші особисті проблеми. Своє г****о тримайте у собі.

Ага. Є такі унікуми (ніколи-б не наняв на роботу і десятому заказав оминати). Пишуть взагалі цілі вебсервери та бази даних на одному тільки bash/perl.
Це краще, ніж c***и на форумах.
[Fedora Linux]

White Trash

  • Гість
Re: Середовище розробки
« Відповідей #73 : 2009-10-12 13:17:13 »
Ви ж знайомі з проблемою контексту, правда?  Ви ж знаєте як вона вирішується чи просто приколюєтеся? mom може означати як this.mom, так і dad.mom, а likes може теж багато чого означати. Як вирішується ця проблема зараз?
Я знаю, як вирішується проблема контексту у мовах програмування. Ви, зважаючи, на цю репліку, теж, і тут постає питання - як ви у холєри будете її вирішувати, інтерпретуючи реальну мову? Чекаю на відповідь. Бажано з прикладами, якомога розгорнутішими. Я як плебей, мислю виключно предметно.

Щодо моєї фрази про "недвійкові" машини, пояснюю. Реальна мова була спонтанно вироблена як інструмент для комунікації між людьми, тобто істотами обладнаними мозком, який до цих пір не зовсім ясно працює. І то не без глюків, пов'язаних з помилками інтерпретації. Ви ж пропонуєте вперти цей підхід на машини нативно двійкові. Ви можете відрізнити нейрон від транзистора?

Але, навіть якщо комусь щось не зрозуміло, чому не можна просто запитатися? Ви ж знайомі з Прологом, правда? Ви ж знаєте, що означає likes(dad, X). ?
Ну. І що? Читайте вище.

Крім того, ви плутаєте російську з українською: "любити" не означає "кохати" чи "займатися сексом".
Якщо ви таки почнете писати інтерпретатор української мови, то дізнаєтесь, наскільки ви неправі, роблячи таке твердження. Прямо в процесі [smiley=hump.gif]

А ви пробували читати те, що я пишу? Ви, в повсякденному житті використовуєте різні мови, в залежності від призначення і ніші, чи просто різні терміни в межах однієї мови?
А самі пробували читати, що ви пишете? Іншу реальну мову використовувати є сенс, коли співрозмовник не знає твоєї, тому що в плані основного призначення вони одна одну повністю заміняють. Звичайно, в повному обсязі це стосується лише розвинутих мов. В менш розвинених мовах це вирішується прямими запозиченнями. І таке явище як суржик - це ознака нативної еволюції. До певної міри, звісно ("Я повсякденной жизні юзаю виключітєльно суржик" :)).

Нічого не зрозумів. Але, між іншим, я не користуюся відлагоджувачем вже досить давно. Якщо програма не може сказати де в неї болить, то запускати її в виробництво не можна - там її відлагоджувати часто просто немає можливості.
Хм-м-м-м. Радий, що ви такий крутий хакер і, схоже, можете виконувати будь-який код прямо у своєму мозку. Тому одне питання. Для  роз'яснення. Інструменти статичного аналізу, ви, видимо, теж вважаєте непотрібними, я правий? Просто досвід підказує, що поезія і статичний аналіз несумісні. Візьміть, для прикладу, перл і українську...

http://neurotechnica.info/?page_id=4 .
Там явно не вистачає однієї маленької деталі - кнопочки "скачать". Але за лінк дякую, почитаю.

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

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Середовище розробки
« Відповідей #74 : 2009-10-12 14:39:20 »
Ви ж знайомі з проблемою контексту, правда?  Ви ж знаєте як вона вирішується чи просто приколюєтеся? mom може означати як this.mom, так і dad.mom, а likes може теж багато чого означати. Як вирішується ця проблема зараз?
Я знаю, як вирішується проблема контексту у мовах програмування. Ви, зважаючи, на цю репліку, теж, і тут постає питання — як ви у холєри будете її вирішувати, інтерпретуючи реальну мову? Чекаю на відповідь. Бажано з прикладами, якомога розгорнутішими. Я як плебей, мислю виключно предметно.
Ну і чому тоді потрібно раптом відмовлятися від усіх технік програмування тільки тому, що програма написана іншою мовою? Від того, що програма написана нормальною мовою, вона не перестає бути програмою.

Щодо моєї фрази про «недвійкові» машини, пояснюю. Реальна мова була спонтанно вироблена як інструмент для комунікації між людьми, тобто істотами обладнаними мозком, який до цих пір не зовсім ясно працює. І то не без глюків, пов’язаних з помилками інтерпретації. Ви ж пропонуєте вперти цей підхід на машини нативно двійкові. Ви можете відрізнити нейрон від транзистора?
І що? Наша мова настільки примітивна, що текст програми нею ніяк не написати, чи що? Це твоя ідея? Чи ідея в тому, що програмісти почнуть писати всілякі поеми замість програм і самі не зможуть їх розпарсати?

Але, навіть якщо комусь щось не зрозуміло, чому не можна просто запитатися? Ви ж знайомі з Прологом, правда? Ви ж знаєте, що означає likes(dad, X). ?
Ну. І що? Читайте вище.
Це розуміти як «Ні, я не знаю Пролог і те що він використовується для розпізнавання живих мов більше 40-ка років»?

Крім того, ви плутаєте російську з українською: «любити» не означає «кохати» чи «займатися сексом».
Якщо ви таки почнете писати інтерпретатор української мови, то дізнаєтесь, наскільки ви неправі, роблячи таке твердження. Прямо в процесі [smiley=hump.gif]
Для дуже тупих пояснюю ще раз — я не збираюся писати інтерпретатор української розмовної мови. Це не Natural Language Processing. Це програмування. У багатьох мов програмування є конструкції, поведінка яких непередбачувана, але це не заважає писати програми. Якщо ви напишете неоднозначну програму, то це будуть ваші особисті проблеми, коли система зрозуміє її не так, як ви планували.

А ви пробували читати те, що я пишу? Ви, в повсякденному житті використовуєте різні мови, в залежності від призначення і ніші, чи просто різні терміни в межах однієї мови?
А самі пробували читати, що ви пишете? Іншу реальну мову використовувати є сенс, коли співрозмовник не знає твоєї, тому що в плані основного призначення вони одна одну повністю заміняють.
Ну так ви використовуєте реальну мову чи пишете DSL, яку пропонували писати мені? Вам не здається, що універсальною DSL на всі випадки життя буде якраз звичайна мова?

Нічого не зрозумів. Але, між іншим, я не користуюся відлагоджувачем вже досить давно. Якщо програма не може сказати де в неї болить, то запускати її в виробництво не можна — там її відлагоджувати часто просто немає можливості.
Хм-м-м-м. Радий, що ви такий крутий хакер і, схоже, можете виконувати будь-який код прямо у своєму мозку. Тому одне питання. Для  роз’яснення. Інструменти статичного аналізу, ви, видимо, теж вважаєте непотрібними, я правий?
Ні, я не виконую код у мозку. Я пишу програми з підтримкою самодіагностики.
Ні, я не вважаю інструменти статичного аналізу непотрібними. Вони частенько ловлять помилки програмах. Якщо ви вдумаєтеся, що таке ІСА, то ви зрозумієте — що це, фактично, експертна система по мові програмування і типовим помилкам. А якщо ви почитаєте уважніше те що я пропоную, то побачите, що у мене програма складається з двох компонент — сам текст програми і експертна система до неї.

http://neurotechnica.info/?page_id=4 .
Там явно не вистачає однієї маленької деталі — кнопочки «скачать». Але за лінк дякую, почитаю.
Та будь ласка. Авторів треба десь виловити — вони можуть зекономити мені купу часу: вони пишуть, що віддають текст програми
[Fedora Linux]