да брось ты кусателя локтейполистал я статьи по ссылке, что ты привел, одни buzz-words и ничо путного. Олегатор не в состоянии даже нагуглить и объяснить, зачем Оберон. Вывод - Оберон для того, чтобы громогласно продемонстрировать, чей писюн толще. а я покидаю этот тред, спец.Олимпиада уже приелась.
Второе высказывание, я бы сказал, даже посуровее.
---------- Post added at 12:24 ---------- Previous post was at 12:04 ----------
Но не дороже, чем переписать проект (возможно, очень большой) на другой язык.
Контролировать полностью свой рабочий инструментарий, не отдавая эту роль в чужие руки, может иметь свой смысл. Многие ценят Оберон именно за то, что он маленький. В случае изменения коньюнктуры легче переориентировать на другую платформу и т.д. Но это сродни натуральному производству. Да, огород не конкурент магазину, но в деревнях и на дачах люди огородничают. По разным причинам. Кто для души, кто чтобы разнообразить жизнь, а кто - для экономии.
В язык Оберон - не могу. Это парадигма с устоявшимся стандартом. В транслятор - могу. Я уже добавил много фич в Ofront. С добавлением фич в Си-компилятор уже посложнее... Как видишь, я вынужденно завишу от Си-компиляторов, на которые сделал в своё время ставку.
Но не значит, что семантика C# была почерпнута в основном из Delphi.
Это становится дороже когда со средой разработки происходит то, что произошло с Delphi. Ибо пользователи хотят 64 бита, .NET, новые технологии, а Delphi и RAD Studio долго этого не предоставляют. А заказчик голосует рублем, и, если он проголосует против, не на что будет поддерживать проект. Поэтому переписать в грамотно развивающиемся IDE даже на другом языке затратно, но спасает бизнес. Иначе получается вот это:
Поддерживать IDE для разработки тоже дорого. Одно дело, когда разработка идет на уникальном самопридуманном языке или наборе библиотек (например, конфигурационный скрипт), другое дело - поддерживать свою IDE для давно существующего языка. Для ZXDev можно же взять C-компилятор для Z80 с открытым кодом и сделать свою ветку со всеми хотелками? Да, но тяжело (в коммерческих условиях это то, что называется "дорого").
Q-Master, если хочешь пощупать язык, попробуй Vishap Oberon Compiler (voc):
Свободный (GPLv3) компилятор языка Оберон-2 для GNU/Linux (x86-64, x86, ppc, armv{4-7}). Сделан на базе транслятора Ofront, так что может быть легко перенесён на другие платформы, для которых есть транслятор Си. Содержит набор библиотек, портированных с других реализаций Оберона: ooc, POW!, ETH Oberon, Ulm Oberon System
http://oberon.vishap.am
Возможно на ppc пойдёт Ulm Oberon System?
Oberon compiler for multiple architecture including m68k, SPARC, and x86 under UNIX and GNU/Linux + Ulm Oberon Library
http://www.mathematik.uni-ulm.de/oberon/
Также вот XOberon. Это целая ОС, внутри - компилятор Оберона для ppc:
ОС реального времени для процессоров архитектуры PowerPC, написанная на языке Оберон-2. Разработка Швейцарского института робототехники (EHTZ).
http://www.ifr.mavt.ethz.ch/research/xoberon/
С ZXDev же - увы - никто не будет проделывать такой объём работы, чтобы ты просто "посмотрел". Если тебя интересует Оберон для ZX - должен делать какие-то шаги сам. Я могу только помочь советом. Например, начни с транслятора Ofront, собери его для ppc, потесть. Потом прикрути к нему SDCC, собранный для ppc. Удивись как всё вместе работает. Библиотеками можешь пока поживиться с проекта ZXDev. Остальное - то, что на базе BlackBox Component Builder - это IDE, раскраска синтаксиса. Оно может и не нужно тебе. Редактор прикрутишь другой.
Побольше личных усилий, никто не обязан напрягаться только ради того, чтобы ты"обосрал""посмотрел". Зато, сделав личные усилия, ты начнёшь ценить то, во что вложил их. А то, я смотрю, мои усилия тебя как-то не впечатляют.
---------- Post added at 15:26 ---------- Previous post was at 13:58 ----------
Q-Master, в крайнем случае, если не сладишь с Ulm или voc, - можешь посмотреть GPCP (Gardens Point Component Pascal) - диалект (надмножество) Оберона-2:
http://gpcp.codeplex.com
Он для JVM, но это ведь не проблема. Для твоего ppc есть реализация JVM?
А вот инструкция как квикстартовать GPCP под Linux, правда, я пробовал под Ubuntu, а не Debian, но ничего, принцип тот же.
Как работать с Gardens Point Component Pascal под Linux
10%, и то если за уши притягивать.
C# - это джава, в которой поправили все корявости и вычистили костыли.
Если не нужно париться за производительность, то C# - это просто идеальнейший язык. Компилируемый, строго типизированный (и с выводом типов!), с интроспекцией, с широким применением функционального подхода (о лямбды, как мне вас в джаве не хватает!), с фичами для написания параллельного кода... Безумно красивый и лаконичный язык. Ничего общего с уродливым Delphi.
Единственный ЯП, который сравним по красоте - это эппловский Swift. И то не факт, т.к. на Свифте я ничего не писал, просто прочёл мануал.
А это получается не "иначе", а "всё время". Потому что любая программа зависит от кучи факторов - от стратегии развития ОС, от парка железа и прихотей заказчика. То, что я для краткости называю "конъюнктура". Однако очень заманчиво иметь больше возможностей чтобы контролировать успешность своего проекта.
Можно конечно. Но я соразмерил силы и решил не морочиться с кодогенерацией. Кстати, разработкой SDCC уже много лет занимается больше 20 основных разработчиков, не считая тех юзеров, кто не ленится давать баг-репорты. Оптимизирующий компилятор Си - это слишком сложный проект для маленьких коллективов.
Ну бог с вами, пусть будет 10.
Ну так и появился позже ведь. И в пику джаве.
Кстати, и джава ведь во многом слизана с Оберона. Да-да, семантика императивных языков - чудная вещь в своей повторимости. Кстати, а что такое лямбды что без них жить нельзя? Это как дворецкий, отгоняющий мух и наливающий чай, от услуг которого трудно отказаться? Или как пара гантелей, которая держит в форме твою мускулатуру, но требует ежедневно напряга?
Последний раз редактировалось Oleg N. Cher; 06.10.2014 в 20:30.
Это новый способ мышления. Возможность изящно описать действие, которое нужно сделать с каким-то списком. Простейшая вещь, которая даёт возможность писать в одну строку то, что без неё писалось бы в 10.
Найти в массиве объект с Id=58
list.First(i => i.Id == 58);
Отсортировать список людей по фамилии, взять первых трех
list.OrderBy(p => p.LastName).Take(3)
Сконвертировать массив строк в массив чисел
list.Select(p => int.Parse(p))
Любая степень вложенности. Найти всех солдат, у которых есть Heavy Laser
list.Where(p => p.Backpack.Any(i => i.Type == Weapon.HeavyLaser))
В тыщу раз короче, чем вложенные циклы+вспомогательные массивы, и в миллион раз понятней.
Это не какая-то свистелка-перделка, это ключевая фича, без которой современный язык не может считаться полноценным. Лямбды есть везде. В C#, python, ruby, C++11. В джаве только нету.
Спасибо за такое объяснение.
А может быть это достигнуто библиотечным путём? Подобно тому как транслятор функционального или логического ЯП может быть написан на императивном.
Ведь пользуемся мы языком запросов SQL. А программа на Обероне, императивная, описывает, например, данные, т.е. по сути является декларативной.
Нас здесь может смущать только последовательность исполнения. Кстати, на Обероне возможно и мета-программирование. Об этом есть статья Йозефа Темпла, кстати, автора транслятора Ofront.Код:BEGIN (* Декларируем команды в конфигурационном файле: *) Lad.Section("[Desktop]"); (*============================================*) Lad.CmdBool("UseRecycleBin", IsRecycleBin, SetRecycleBin, Win.IsWinVer( {Win2000..Win2003} ), {Lad.NeedLogOff} ); ... END Desktop.
Ага. А если нужно париться за производительность, то C# - тоже идеальнейший язык.
С первой частью я соглашусь. Действительно, хочется верить, что начатый проект будет всегда развиваться по мере появления новых технологий, и эти технологии будут поддержаны инструментарием. До Delphi 7 включительно у Object Pascal все было с этим хорошо. А вот вторая часть - спорная. Хватит ли сил чтобы поддерживать инструментарий в темпе развития технологий? У Oracle и Microsoft пока хватает, Borland показал, что не справился. Ясно, что, если загнется Microsoft, миллиарды производителей ПО будут мечтать, чтобы их код завтра утром магическим образом перевелся на Java или кросс-платформенную версию C++. В этом смысле, конечно, хорошо иметь "свое". Особенно, если это "свое" не раздуто до размеров слона и поддерживаемо даже в ограниченных условиях. но, повторюсь, стоят ли инструменты коммерческой разработки того, чтобы разрабатывать и поддерживать их самостоятельно? Что будет с проектом если он отстанет от технологий?
Ага. Он делается как хобби. Для коммерческого применения есть много хороших оптимизирующих компиляторов C, которые и эффективнее, и выходят дешевле.
В терминах Pascal-подобных языков лямбда-выражение - это возможность записать выражение процедурного типа вместе с телом самой процедуры не присваивая его переменной процедурного типа, и, например, передать его в качестве параметра процедуры. В основном используется для передачи алгоритмов в процедуры и назначения в качестве обработчиков событий не процедур, а непосредственно алгоритмов. Очень удобно, лаконично и наглядно.
---------- Post added at 22:48 ---------- Previous post was at 22:46 ----------
Нет, для этого язык должен поддерживать запись выражений процедурного типа вместе с телом процедуры.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)