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

White Trash

  • Гість
Re: Середовище розробки
« Відповідей #75 : 2009-10-12 16:15:01 »
Гм. І де це я встиг вас так зачепити?

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

Роз'яснюю. Код повинен бути перш за все читабельним та підтримуваним. Я слабо уявляю code convention, в який можна вгнати ваш підхід, але якщо такий і буде, заставити програмістів його дотримуватись можна лише нагайкою. Всі наявні мови програмування - від C до Пролога, який ви тут чомусь весь час приплітаєте - в тій чи іншій мірі обмежують фантазію програміста, тобто навіть наймоторошніший код здебільшого можна якось розібрати. А ваш підхід має на увазі перманентне читання дамських романів за найменшої помилки. Якщо ж ви почнете робити якийсь convention з метою структурувати код, всі його переваги миттю летять коту під хвіст. Принаймні, тут фантазія мені відмовляє.

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

Це розуміти як «Ні, я не знаю Пролог і те що він використовується для розпізнавання живих мов більше 40-ка років»?
Це розуміти як "я шалено пишаюсь знанням пролога і мушу донести цей факт до світу"? Пролог я не знаю, зате дуже добре знайомий з термінологією і принципом декларативних мов. Однією з них (DSL, до речі) доводиться користуватись регулярно. Тому повторюю питання - і що? Особливо зважаючи на те, що ви, видимо, забули, що плануєте зробити не NLP, а мову, яка копіює синтаксис реальної мови. Про що вам сумирно нагадую.

Для дуже тупих пояснюю ще раз — я не збираюся писати інтерпретатор української розмовної мови. Це не Natural Language Processing. Це програмування.
Ще раз. Це, взагалі-то, я мав би вам нагадати. Ви ж цю нотатку не для себе писали, я сподіваюсь?

У багатьох мов програмування є конструкції, поведінка яких непередбачувана, але це не заважає писати програми. Якщо ви напишете неоднозначну програму, то це будуть ваші особисті проблеми, коли система зрозуміє її не так, як ви планували.
Але ж ви знаєте, що це неправда. Це проблема ще й тих, хто буду це підтримувати, після того як ви підете на інший проект, у відпуску і т.д. Хіба весь чужий код, який вам доводилось підтримувати, був ідеальний? Жодного разу не хотілось знайти автора і скалічити? Як я вам заздрю...

Ну так ви використовуєте реальну мову чи пишете DSL, яку пропонували писати мені? Вам не здається, що універсальною DSL на всі випадки життя буде якраз звичайна мова?
Ні, мені так не здається. Більше того, я категорично проти такого підходу. Частково я це вже пояснив, але викладу ще раз в одному місці (припустивши, що інтерепретатор таки імплементували, хоча мені видається, що складність цієї задачі ви, дуже м'яко кажучи, недооцінюєте):
1. Неможливість виробити єдиний code convention.
2. Відсутність синтаксичних механізмів, що форсуватимуть дотримання певного стилю.
3. Як наслідок п.1 і п.2 - нечитабельність.
4. Як наслідок п.3 - неможливість реалізації довготривалої підтримки.
5. Як наслідок п.4 - неможливість використання мови для будь яких цілей, окрім навчально-розважальних.

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

Крім того, ви не відповіли на питання про контекст, хоча воно далеко не єдине. Як, наприклад, виглядатиме така банальна штука як коментар? Розмітка типу "Коментар: не чіпайте, не знаю, як воно працює."? М-дя...

Ні, я не виконую код у мозку. Я пишу програми з підтримкою самодіагностики.
Я це, звичайно, обома руками підтримую, але це дещо... самовпевнено. Гаразд, мова тут про інше.

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



До речі. Ми на "ти", чи на "ви"? Ви все ж визначтесь. І спокійніше, спокійніше, вас тут не б'ють і катувати ніхто не збирається. Принаймні до тої пори, поки ваші ідеї не потрапили в продакшн...

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

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Середовище розробки
« Відповідей #76 : 2009-10-12 23:23:42 »
Гм. І де це я встиг вас так зачепити?
Мене дуже зачепила ваша зашореність, на пару з ВМ.

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

Роз'яснюю. Код повинен бути перш за все читабельним та підтримуваним.
Куди вже читабельнішим може бути код, який записаний звичайною мовою?

Я слабо уявляю code convention, в який можна вгнати ваш підхід, але якщо такий і буде, заставити програмістів його дотримуватись можна лише нагайкою.
Ваші сексуальні фантазії про нагайку мене не турбують.

Всі наявні мови програмування - від C до Пролога, який ви тут чомусь весь час приплітаєте
Ознайомтеся нарешті з Прологом. Подальша дискусія немає сенсу. Ви просто не знаєте елементарних речей.
[Fedora Linux]

Відсутній BM

  • Кореспондент
  • ***
  • дописів: 162
  • Карма: +0/-0
  • SUSE Linux Products GmbH
Re: Середовище розробки
« Відповідей #77 : 2009-10-13 04:25:25 »
Я вам навів приклади великих систем, які написані динамічними мовами і які використовуються лідерами індустрії, пане поліглот. Як ви до цього ставитеся — це ваші особисті проблеми.
Ой, та досить тут тупо грати на публіку: «лідерами індустрії», «в грєчєском залє, в грєчєском залє» © Райкін. Ще зачніть про Windows is used 95% in the World...

При чому тут взагалі якась індустрія? — та-й зовсім розмова не про те. Ми тут говоримо про швидкість та ефективність виконання статичних мов vs динамічних. От і було чітке питання показати велику систему на динамічній мові, що вміє робити 10K і більше транзакцій за секунду. Ви цього не зробили, а все що ви навели — це повільні системи, які навіть третини з того не тягнуть... Заодно ви так і не згадали про те, що в статичних мовах типу С++ чи Java — при випадковому (дурному) перейменуванні метода воно не скомпілюється. А в динамічній мові це буде runtime помилка, яка може виявитись значно пізніше (про тести городити тут диферамби не треба).

А я навів вам: FOX від Fusion Systems якраз робить гарантованих 10 тисяч транзакцій за секунду (насправді робить більше). Це також величезна модульна і дуже популярна система. Дивно що ви про неї взагалі нічо не чули і рівняєте з нею якісь ЖЖ, ютуб та прочу social networks фігню.
« Змінено: 2009-10-13 19:28:53 від BM »

White Trash

  • Гість
Re: Середовище розробки
« Відповідей #78 : 2009-10-13 13:01:14 »
Мене дуже зачепила ваша зашореність, на пару з ВМ.
Куди вже читабельнішим може бути код, який записаний звичайною мовою?
Ваші сексуальні фантазії про нагайку мене не турбують.
Ознайомтеся нарешті з Прологом. Подальша дискусія немає сенсу. Ви просто не знаєте елементарних речей.
Хе-хе=) "Зашореність", "сексуальні фантазії", "елементарні речі". Ви не відповіли на жодне питання по суті - ні моє, ні BM. Натомість відправили неграмотне бидло вчити пролог. Справді, який сенс аристократії від IT розмовляти з люмпеном. З чого роблю висновок, що ви самі не знаєте, чого хочете. Пророкую - через півроку-рік, якщо не раніше, ви тихо і спокійно закинете цю розвагу. Жаль, чисто JFF ідея цікава, але замість того, щоб щось займатись справою, ви тут сварились=) Сі ю.

Відсутній BM

  • Кореспондент
  • ***
  • дописів: 162
  • Карма: +0/-0
  • SUSE Linux Products GmbH
Re: Середовище розробки
« Відповідей #79 : 2009-10-13 19:22:32 »
1. Неможливість виробити єдиний code convention.
2. Відсутність синтаксичних механізмів, що форсуватимуть дотримання певного стилю.
3. Як наслідок п.1 і п.2 - нечитабельність.
4. Як наслідок п.3 - неможливість реалізації довготривалої підтримки.
5. Як наслідок п.4 - неможливість використання мови для будь яких цілей, окрім навчально-розважальних.

Так. Саме про це я й говорив: "Tim Toady" або TMTOWTDI або "There Is More Than One Way To Do It" або "Why Perl sucks". Це й призвело до "Tim Toady Bicarbonate" або TIMTOWTDIBSCINABTE або "There's more than one way to do it, but sometimes consistency is not a bad thing either" — ну, слава Богу що хоч взагалі щось доходить після однієї декади...

Чому Python вбив Perl і чому нео-адміни все роблять на Python і де-коли на Ruby? Бо в Python якраз навпаки: мова форсує  "pythonic way" та робити тільки в одному виробленому стилі, одними накатаними патернами та одним вишліфуваним дизайном і не вий*****тись, за перепрошення. Тобто, новий адмін сідає за код і йому не треба пити пляшку горівки щоби зрозуміти що то за холєра написана.

І я чому говорив за Natural Language Processing: щоби вияснити контекст. Лісівка вперся рогом в те, що «видрук» це простіше ніж «the print» (начеб-то комусь треба був такий горе-компілятор же навіть не розуміє елементарних токенів артиклю...). Але мова не про це. Справа в тому, що натуральна мова дає контекст, який зрозумілий живій людині, але не зрозумілий компютеру. Тому треба будувати ті всі дерева, знаходити контекст і так далі. Тому я й казав що це — титанічна робота. Казав тому, що мабуть я вже не настільки молодий щоби все знати. :)

Ну хай напише. Подивимось на його нову версію «pro-лох'у». :) Я буду перший, хто заведе блог і буду рекламувати то по всіх слашдотах, куроп'яткіних та інших зереґістрах. ;D
« Змінено: 2009-10-13 19:25:18 від BM »

Praporshic

  • Гість
Re: Середовище розробки
« Відповідей #80 : 2009-10-13 20:29:34 »
"Tim Toady" або TMTOWTDI або "There Is More Than One Way To Do It" або "Why Perl sucks"
Але найти заміну йому частенько складно.

Чому Python вбив Perl і чому нео-адміни все роблять на Python і де-коли на Ruby? Бо в Python якраз навпаки: мова форсує  "pythonic way" та робити тільки в одному виробленому стилі, одними накатаними патернами та одним вишліфуваним дизайном і не вий*****тись, за перепрошення. Тобто, новий адмін сідає за код і йому не треба пити пляшку горівки щоби зрозуміти що то за холєра написана.

Схоже що я таки олдскул-адмін. Я зараз пишу на пітоні лише з метою його вивчення. А так - Perl або Shell.
І нічого, раніше не міг прочитати власний код вже через місяць. Тепер без проблем читаю та підпилюю те, що писав позаминулого року — виробив нормальний code style та дав привчити себе до code conventions. Ну й мій код людина доробляла без проблем.

BTW, UNIX та подібні я полюбляю саме за TIMTOWDI. На Python він теж присутній. От тільки вимоги до форматування змушують писати більш-менш адекватно.

Відсутній BM

  • Кореспондент
  • ***
  • дописів: 162
  • Карма: +0/-0
  • SUSE Linux Products GmbH
Re: Середовище розробки
« Відповідей #81 : 2009-10-14 09:37:33 »
Але найти заміну йому частенько складно.
Так, бо Python молодий, а Perl дуже старий, на той час це було найкраще що можна було знайти для адмінів, і на ньому дофіга вже всього є. Але це всеодно не значить що Perl, як мова, читабельний та любимий всіма. Це просто must use (все ще) бо все ще купа legacy софта якого треба підтримувати та не пхати до нього нігтів. Але ситуація змінюється і, IMHO, десь через 5 років Perl практично щезне, будучи музейним хобі старожилів. Він вже й так значно поступається Python у популярності, якщо говорити про surveys та job requirements і тенденція зовсім ніяк не радує перлістів...

А ще глянь по-суті: на чому написана RedHat Anaconda та yum? На чому написаний IPS для Solaris? А це-ж те, за що платять по компаніях. Тобто, просять знати відповідні компоненти щоби ото підтримувати. Тобто, це й форсує людей вчити Python, який вже йде дефолтом у всіх *NIX'ах. Якраз через 5 років всі оті редхати та центоси будуть legacy. І там буде Python та купа скриптів щоби ото підтримувати.

Такий мій прогноз, може я помиляюсь, то хай хтось поправить.

Схоже що я таки олдскул-адмін. Я зараз пишу на пітоні лише з метою його вивчення. А так - Perl або Shell.
Але це таки не жарт і серйозно: зараз нових адмінів вже дуже часто питають чи знає Python або Ruby і наскільки. Зазвичай, пишуть "Perl is a plus", але якщо нє, ну то й нафіг. В Україні ситуація може й інша зараз, але це всеодно зміниться, бо дивись як Python погнав у гору, а де той Parrot? Щось ніфіга про нього не чути.

І нічого, раніше не міг прочитати власний код вже через місяць. Тепер без проблем читаю та підпилюю те, що писав позаминулого року — виробив нормальний code style та дав привчити себе до code conventions. Ну й мій код людина доробляла без проблем.

Так, але там об'єктів нема. Тобто типу є, але насправді то туфта якась, яку руцями треба контролювати і малі помилки можуть призвести до непередбачуваних результатів. Ще-й немає try/catch. Тобто є хак Error.pm який так і не працює як треба у певних випадках. Або $@% проблема, яку ненавидять самі перлісти: якщо я сказав @array, то якого біса я звертаюсь до нього вже як $array[0] і чому не можу @array[0]? В Perl6 вони це вже начеб-то порівняли.

UNIX та подібні я полюбляю саме за TIMTOWDI.
Well, це OT. :) Але якщо мова за Unix, то я полюбляю зовсім з інших причин: архітектура. Останнім часом сиджу на OpenSolaris дуже багато, і чим далі з ним знайомлюсь у його «бебехах» та internals, тим менше і менше подобається Linux (oops!)... Але flame off, please. :)

На Python він теж присутній. От тільки вимоги до форматування змушують писати більш-менш адекватно.
Sort of. Можна писати obfuscated python, але це-ж не така дикість як у Perl! Якщо писати pythonic way та притримуватись вже накатаних шаблонів (design patterns), тоді там не так вже й багато місця для розваг. Я вважаю це якраз дуже добре: і є достатньо місця для міні-приколів, а є здорового глузду рамки, що не дають людям потім матюкатись через синтаксис. Те що там вже є задумано, є файним та досить таким собі солоденьким і оптимальним для всіх...

У Python дуже файний баланс, на мою думку.
« Змінено: 2009-10-14 09:48:17 від BM »

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

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Середовище розробки
« Відповідей #82 : 2009-10-14 10:26:15 »
Справа в тому, що натуральна мова дає контекст, який зрозумілий живій людині, але не зрозумілий компютеру. Тому треба будувати ті всі дерева, знаходити контекст і так далі. Тому я й казав що це — титанічна робота. Казав тому, що мабуть я вже не настільки молодий щоби все знати. :)

Ознайомтеся нарешті з темою. Ця "титанічна робота" була зроблена вже не раз. Ось зразок першої такої системи (1968-1970): http://hci.stanford.edu/winograd/shrdlu/
[Fedora Linux]

Praporshic

  • Гість
Re: Середовище розробки
« Відповідей #83 : 2009-10-14 11:52:20 »
Так, бо Python молодий, а Perl дуже старий, на той час це було найкраще що можна було знайти для адмінів, і на ньому дофіга вже всього є. Але це всеодно не значить що Perl, як мова, читабельний та любимий всіма.
Взагалі-то Perl створювався саме як мова для адміністраторів. "Shell on steroids" або "Advanced awk is named perl". Простота вивчення мови зробила свою справу — стали використовувати навіть там, де їй не місце (за початковим задумом). Якби не з’явився PHP, то саме Perl був би «бидлокодерською» мовою.

Але це таки не жарт і серйозно: зараз нових адмінів вже дуже часто питають чи знає Python або Ruby і наскільки. Зазвичай, пишуть "Perl is a plus", але якщо нє, ну то й нафіг. В Україні ситуація може й інша зараз, але це всеодно зміниться, бо дивись як Python погнав у гору, а де той Parrot? Щось ніфіга про нього не чути.
Дивно, мене питали як я знаю:
1. ANSI C
2. POSIX Shell
3. Perl
Про Ruby та Python взагалі мови не йшло. Це я десь два роки тому був кандидатом на посаду Jr. System Engineer. Коли проходив співбесіду на поточне місце (Linux SA) мене питали особливості системи й таке інше.

Так, але там об'єктів нема. Тобто типу є, але насправді то туфта якась, яку руцями треба контролювати і малі помилки можуть призвести до непередбачуваних результатів.
Може це вас здивує, але я почав розуміти ООП саме коли почав створювати модулі на Perl. До того мене намагались навчити цьому на прикладі PHP та C++ — не вийшло.

Ще-й немає try/catch. Тобто є хак Error.pm який так і не працює як треба у певних випадках. Або $@% проблема, яку ненавидять самі перлісти: якщо я сказав @array, то якого біса я звертаюсь до нього вже як $array[0] і чому не можу @array[0]? В Perl6 вони це вже начеб-то порівняли.
Ну а мене у Python дико нервує відсутність $/@/% перед змінними/масивами/хешами.

Well, це OT. :) Але якщо мова за Unix, то я полюбляю зовсім з інших причин: архітектура. Останнім часом сиджу на OpenSolaris дуже багато, і чим далі з ним знайомлюсь у його «бебехах» та internals, тим менше і менше подобається Linux (oops!)... Але flame off, please. :)
А це напряму пов’язано з його архітектурою. Що стосується OpenSolaris — мацав. Непогано, сподобалось. Але:
1. Наразі мені платять за RHEL (тому я й сертифікувався на RHCT).
2. Linux наразі більш розвинений для робочої станції (та й на сервері непогано). Я з Linux керував серверами з AIX - жодних проблем. Так само можу керувати Solaris/HP-UX/etc.

Sort of. Можна писати obfuscated python, але це-ж не така дикість як у Perl! Якщо писати pythonic way та притримуватись вже накатаних шаблонів (design patterns), тоді там не так вже й багато місця для розваг. Я вважаю це якраз дуже добре: і є достатньо місця для міні-приколів, а є здорового глузду рамки, що не дають людям потім матюкатись через синтаксис. Те що там вже є задумано, є файним та досить таким собі солоденьким і оптимальним для всіх...

Тобто, ви хочете сказати, що Perl змушує усіх писати нечитабельний код? А як вам постійна лайка на виділення блоків коду у Python відступами?

У Python дуже файний баланс, на мою думку.
Різні мови з різним походженням та метою.
« Змінено: 2009-10-14 11:52:41 від Praporshic »

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

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Середовище розробки
« Відповідей #84 : 2009-10-14 12:06:34 »
Я вам навів приклади великих систем, які написані динамічними мовами і які використовуються лідерами індустрії, пане поліглот. Як ви до цього ставитеся — це ваші особисті проблеми.
Ой, та досить тут тупо грати на публіку: «лідерами індустрії», «в грєчєском залє, в грєчєском залє» © Райкін. Ще зачніть про Windows is used 95% in the World...
І що це значить? Ваші продукти залишили Гугл далеко позаду?

При чому тут взагалі якась індустрія? — та-й зовсім розмова не про те. Ми тут говоримо про швидкість та ефективність виконання статичних мов vs динамічних. От і було чітке питання показати велику систему на динамічній мові, що вміє робити 10K і більше транзакцій за секунду. Ви цього не зробили, а все що ви навели — це повільні системи, які навіть третини з того не тягнуть...
Звідки такі висновки, якщо не секрет? Якщо система дає напр. 100 транзакцій на одного користувача, то яка сумарна пропускна здатність для 100-ні користувачів?

Хочете інший приклад - CouchDB (Erlang+JavaScript). Маштабується він практично лінійно, так що кількість TPS обмежується тільки кількістю грошей у кишені. Тут: http://johnpwood.net/2009/08/18/couchdb-the-last-mile/ , кажуть що після міграції з Майскла на Коуч, швидкодія на деяких операціях зросла на порядок.

Заодно ви так і не згадали про те, що в статичних мовах типу С++ чи Java — при випадковому (дурному) перейменуванні метода воно не скомпілюється. А в динамічній мові це буде runtime помилка, яка може виявитись значно пізніше (про тести городити тут диферамби не треба).
Так і виправити помилку можна значно пізніше, якщо ви вже не користуєтеся тестами (і, як я вже казав, статична типізація ортогональна до динамічності, див. скалу). Ерланг дозволяє замінювати один обробник подій на інший на льоту так само просто, як можна замінити поштовий сервер в інтернеті без перевантаження всього інтернету. Саме тому СимплДіБі працює 24x7. Зробіть таке на кластері з Майсклів.

А я навів вам: FOX від Fusion Systems якраз робить гарантованих 10 тисяч транзакцій за секунду (насправді робить більше). Це також величезна модульна і дуже популярна система. Дивно що ви про неї взагалі нічо не чули і рівняєте з нею якісь ЖЖ, ютуб та прочу social networks фігню.
Вікіпедія каже, що FOX був проданий у 2002-му році до GL Trade: http://en.wikipedia.org/wiki/Fusion_Systems . Більше нічого про цей загадковий продукт не відомо.
Тикніть пальцем на тести, будь ласка.

Для порівняння, рекорд по TPC-C ( http://www.tpc.org/tpcc/results/tpcc_perf_results.asp ): 7700 на кластері з Ораклів, 6000 на одній машині транзакцій в ХВИЛИНУ (120-100 TPS). Це тести, які наближені до реальності.
[Fedora Linux]

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

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Середовище розробки
« Відповідей #85 : 2009-10-14 12:12:13 »
Для початку її вивчити, як я вже казав… Іменник насправді «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». Так зрозуміліше?

«Go back to back door in the back of the back room and back up your files.» ("Іди назад до задніх дверей в задній частині задньої кімнати і зроби резервну копію своїх файлів." — списав з книжки).

«to back» — це дієслово.
«the back» в «the back room» — це іменник.
А решта?  ::)
[Fedora Linux]

Відсутній BM

  • Кореспондент
  • ***
  • дописів: 162
  • Карма: +0/-0
  • SUSE Linux Products GmbH
Re: Середовище розробки
« Відповідей #86 : 2009-10-14 20:25:11 »
«Go back to back door in the back of the back room and back up your files.» ("Іди назад до задніх дверей в задній частині задньої кімнати і зроби резервну копію своїх файлів." — списав з книжки).

«to back» — це дієслово.
«the back» в «the back room» — це іменник.
А решта?  ::)

Думаю, що розрізняти "watch back room" від "watch my back" — це справа розпізнаного контексту, ніж справа секвенційної токенізації.

Ознайомтеся нарешті з темою. Ця "титанічна робота" була зроблена вже не раз. Ось зразок першої такої системи (1968-1970): http://hci.stanford.edu/winograd/shrdlu/

Почитав діалог з компом... LOL  ;D Уявляю програмування:

> Виведи мені будь-ласка десять останніх транзакцій
$ Шо?
> Десять (10) останніх транзакцій виведи! Шо...
$ Сто транзакцій по користувачу «Шо» не знайдено.
> Не сто, а десять.
$ Що десять?
> Десять транзакцій.
$ *виводить 10 несортованих транзакцій*
> Б***!! Дурак! Не так!!!
$ Лист  «Б***!! Не так, дурак!» по електронній пошті на адресу director@company.com надіслано.
> Ой!! Відмінити!
$ Десять останніх транзакцій користувачів відмінено без резервної архівації. Сам ти Ой.
> Ребут
$ Шо?
> Рестарт
$ Шо?
> Перезавантажити
$ Запит на перезавантаження вантажівки з пивом фірми «Оболонь» відправлено.
> Відмінити!
$ Що саме?
> Запит на перезавантаження вантажівки.
$ Запит на відміну перезавантаження вантажівки з пивом фірми «Оболонь» відправлено. Буде прийнятий одразу після закінчення попереднього запиту.
> Чорт...
$ Чорта не знайдено. Але знайдений троян Chort@w00t_XXX-666. (Так/Ні): _
> Ні!
$ OK, троян Chort@w00t_XXX-666 не стерто, а виконано.
> Виведи 10 останніх транзакцій.
$ Ви маєте наувазі 10 останніх транзакцій?
> Так. Виведи їх будь-ласка.
$ Що значить «так»? Ви маєте наувазі  «танк»?
> *стріляється*

Де це вже бачив?... А! Згадав... Emacs doctor-mode... ;D


Ваші продукти залишили Гугл далеко позаду?
А що Google? Там мікстура з C++ та Java в основному, а тільки старі частини на Python. Ну якщо мова йде про пошуковик... За решту не знаю, то й говорити не буду.

Якщо система дає напр. 100 транзакцій на одного користувача, то яка сумарна пропускна здатність для 100-ні користувачів?
Це залежить. Там-же кластер, а не один сервер?


7700 на кластері з Ораклів, 6000 на одній машині транзакцій в ХВИЛИНУ (120-100 TPS)
Круто! Все життя хотів купити Оракл. Тепер візьму два. :))) Project Voldemort:

Reads: 19,384 req/sec
Writes: 16,559 req/sec


Відсутній BM

  • Кореспондент
  • ***
  • дописів: 162
  • Карма: +0/-0
  • SUSE Linux Products GmbH
Re: Середовище розробки
« Відповідей #87 : 2009-10-14 20:50:00 »
Взагалі-то Perl створювався саме як мова для адміністраторів.
AFAIK для репортів, коли Ларрі працював для NASA... Але менше з тим.

Дивно, мене питали як я знаю:
1. ANSI C
2. POSIX Shell
3. Perl
Ну та так, це-ж ще не поголовно, звісно. Просто загальні тенденції дуже сильно зсунулись в сторону Ruby/Python за останній рік (що я, доречі, передбачував ще приблизно три роки тому) і зараз дуже багато чути саме про ці мови та нові проекти саме на них. Проте майже нічого про нові проекти на Perl та зовсім ноль про хоч якийсь прогрес Perl 6. Сам автор Багзіли кляне Perl і каже що більше він тим займатись не в стані та хоче піти шляхом Python або Ruby. Доречі, тут офіціоз: https://wiki.mozilla.org/Bugzilla:Languages

Якщо щось може пропускаю, то вкажіть — буду вдячний...

Може це вас здивує, але я почав розуміти ООП саме коли почав створювати модулі на Perl. До того мене намагались навчити цьому на прикладі PHP та C++ — не вийшло.
На прикладі Python було-б теж без жодних проблем, я вважаю:

class Foo:pass
:-)

Причому, кожен файл з Python кодом автоматично модуль. Геніально і просто!

Ну а мене у Python дико нервує відсутність $/@/% перед змінними/масивами/хешами.
Думаю, що це не завадить прочитати: http://avatraxiom.livejournal.com/58084.html :-)

Наразі мені платять за RHEL (тому я й сертифікувався на RHCT).
Так-так. Поки що воно все ще жиє і ще трохи потріпається... Але мушу попередити, що Oracle дуже скоро йому шайби прикрутить на ентерпрайзах і вже є дуже агресивні та реальні бізнес-плани як саме. RedHat в принципі сам себе закопує... Ну але то таке, не будемо про сумне. :)

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

Виділення відступів спочатку бісили ESR'а теж. :) Але насправді це зовсім не проблема і зовсім не нервує, бо є Python-mode у VIM, Emacs, Eclipse, NetBeans, Komodo та ін. Ви-ж не в Notepad.exe то все пишете, пра? :) А от коли почитаєте що пише автор Багзіли, то там де він пише про Cons пітона за відсутність curly braces — дуже явно видно що трактує Python як Perl, просто з іншим синтаксисом. А вся фішка в тому, що класичний Pythonic way дає ну максимум метод на екран без скролу. Тобто, чим більше ріжеш на кавальці маленькими методами — тим краще. Хіба тоді проблема побачити ті відступи, коли все перед очима? А от коли рябить дочорта @#$%$#@#$% таким... :)

Різні мови з різним походженням та метою.
Uhm... Як на мене, то вони обидві general purpose. Просто тепер одна розвивається і бустяється Гуглом, а друга — відмирає музейним експонатом. Це-ж нормально. Прийде час і Python буде в музеї...

Он Володя напише тут УКР++ і весь світ буде кодяти на ньому. :)))))))))

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

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Середовище розробки
« Відповідей #88 : 2009-10-15 01:55:52 »
«Go back to back door in the back of the back room and back up your files.» ("Іди назад до задніх дверей в задній частині задньої кімнати і зроби резервну копію своїх файлів." — списав з книжки).

«to back» — це дієслово.
«the back» в «the back room» — це іменник.
А решта?  ::)

Думаю, що розрізняти «watch back room» від «watch my back» — це справа розпізнаного контексту, ніж справа секвенційної токенізації.
Ви — геній, шановний. Тобто для того, щоб легко і невимушено розпарсати англійський текст, треба спочатку всього-навсього розпізнати контекст. Див. розмір OpenCyc — вони саме цим і займаються.

Почитав діалог з компом… LOL  ;D Уявляю програмування:
Де це вже бачив?… А! Згадав… Emacs doctor-mode… ;D
Ну якщо ти вже це бачив, то чого шлангом прикидаєшся? :-)

Якщо система дає напр. 100 транзакцій на одного користувача, то яка сумарна пропускна здатність для 100-ні користувачів?
Це залежить. Там-же кластер, а не один сервер?
А ти бачив щоб один сервер писав на диск зі швидкістю 10K TPS? Це потрібно щоб у диска був час пошуку менше 0,1 мікросекунди.


7700 на кластері з Ораклів, 6000 на одній машині транзакцій в ХВИЛИНУ (120-100 TPS)
Круто! Все життя хотів купити Оракл. Тепер візьму два. :))) Project Voldemort:

Reads: 19,384 req/sec
Writes: 16,559 req/sec

[/quote]
Цитата
Here is the throughput we see from a single multithreaded client talking to a single server where the "hot" data set is in memory under artificially heavy load in our performance lab:

Хтось почав забуватися, що таке транзакція, що таке запис на диск. Операції в пам’яті нас не цікавлять, правда?

Цитата
Note that this is to a single node cluster so the replication factor is 1. Obviously doubling the replication factor will halve the client req/sec since it is doing 2x the operations. ...
by increasing the replication factor, decreasing the cache size, or increasing the data size on the node, we can make the performance arbitrarily slow.
Це не схоже на лінійне масштабування. Яка продуктивність буде у кластера зі 100 машин?
[Fedora Linux]

Praporshic

  • Гість
Re: Середовище розробки
« Відповідей #89 : 2009-10-15 12:26:04 »
AFAIK для репортів, коли Ларрі працював для NASA... Але менше з тим.
Pathologicaly Eclectic Rubbish Lister. До речі у вступі до Camelbook чітко написано, що розроблявся Perl саме як "Shell на стероїдах". Тобто, здебільшого для системних адміністраторів (у сучасному розумінні).

Ну та так, це-ж ще не поголовно, звісно. Просто загальні тенденції дуже сильно зсунулись в сторону Ruby/Python за останній рік (що я, доречі, передбачував ще приблизно три роки тому) і зараз дуже багато чути саме про ці мови та нові проекти саме на них. Проте майже нічого про нові проекти на Perl та зовсім ноль про хоч якийсь прогрес Perl 6. Сам автор Багзіли кляне Perl і каже що більше він тим займатись не в стані та хоче піти шляхом Python або Ruby. Доречі, тут офіціоз: https://wiki.mozilla.org/Bugzilla:Languages
Так, з Perl 6 зовсім тиша. Ну а Perl 5 вже засів на своєму місці і йому там добре. Стосовно зсуву... Тут нещодавно автотестери писали свою систему на пролозі - незручно та повільно. Потім вирішили на Ruby - воно ще сире. Врешті-решт вже майже зробили на Java, бо засвоювати Python нема часу. Де-які частини їх коду (коли було зовсім тяжко) я «на колінках» робив на Perl трохи швидше, ніж вони думали.

Якщо щось може пропускаю, то вкажіть — буду вдячний...
Істина десь поруч ©

На прикладі Python було-б теж без жодних проблем, я вважаю:
class Foo:pass:-)
Причому, кожен файл з Python кодом автоматично модуль. Геніально і просто!
Так, зручно й просто. Але Perl мені попався раніше.

Думаю, що це не завадить прочитати: http://avatraxiom.livejournal.com/58084.html :-)
Якщо треба буде - я й на whitespace прочитаю код. Але підсвічування синтаксису - таки зручна річ.

Так-так. Поки що воно все ще жиє і ще трохи потріпається... Але мушу попередити, що Oracle дуже скоро йому шайби прикрутить на ентерпрайзах і вже є дуже агресивні та реальні бізнес-плани як саме. RedHat в принципі сам себе закопує... Ну але то таке, не будемо про сумне. :)
Як систему для СКБД - може бути. Як application platform - не впевнений. Занадто вже непогано у червонокапелюхих йдуть справи. Novell помре раніше - 100%.

Ні, я хотів сказати що Perl дає забагато свободи. Або, точніше, дає її там, де вона зовсім непотрібна.
ANSI C та ассемблери теж дають дуже багато свободи. Це так, між іншим...

Виділення відступів спочатку бісили ESR'а теж. :) Але насправді це зовсім не проблема і зовсім не нервує, бо є Python-mode у VIM, Emacs, Eclipse, NetBeans, Komodo та ін. Ви-ж не в Notepad.exe то все пишете, пра? :)
/me швиденько виконав у консолі alias Notepad.exe=gvim

Так, у ньому, а що? :)

А от коли почитаєте що пише автор Багзіли, то там де він пише про Cons пітона за відсутність curly braces — дуже явно видно що трактує Python як Perl, просто з іншим синтаксисом. А вся фішка в тому, що класичний Pythonic way дає ну максимум метод на екран без скролу. Тобто, чим більше ріжеш на кавальці маленькими методами — тим краще. Хіба тоді проблема побачити ті відступи, коли все перед очима? А от коли рябить дочорта @#$%$#@#$% таким... :)
Кхм... власне, я й у Perl теж намагаюсь робити щось подібне. Мені простіше слідкувати за підпрограмами (перепрошую за термінологію — мозок ушкоджено Basic`ом на ПОЕМ «Корвет») ніж за простирадлом коду. І почав це робити ще до того, як поліз у Python. Що зі мною не так?

Uhm... Як на мене, то вони обидві general purpose. Просто тепер одна розвивається і бустяється Гуглом, а друга — відмирає музейним експонатом. Це-ж нормально. Прийде час і Python буде в музеї...
Perl став GP далеко не одразу. На відміну від. Не знаю як воно з музейністю, але я вже почав шкодувати, що поточний скрипт пишу на Python - вовтузитись ще з тиждень. На Perl вже зробив би.
Казати що Perl - RIP, все одно що казати «C - RIP, бо на сучасніших мовах можна швидше писати та не паритись про malloc-free». Раніше казали «життя занадто коротке, щоб писати на ассемблері». Зараз так кажуть про C. Але на ньому пишуть. І нічого тут не вдієш. Хіба що, оно SUN`івці ніби навчили якесь залізо виконанню Java на апаратному рівні....