LINUX.ORG.RU

А что Go сдох? Кто вместо него?

 , , , ,


1

5

Перестал следить за ним 8 лет назад. Сейчас глянул снова. Старожилы сообщества либо без вести пропали, либо пишут на чём угодно кроме Go. Проекты попротухали. Компании, с которыми я имел дело, переписали всё на JVM based языках. Вакансий по Go, если опустить США, дай боже 5-10 штук в месяц. Из них половина - админство / devops. По статистике TIOBE и PYPL Go растёт (1.42% рынка), а PHP падает (против 1.13%; для сравнения, у Haskell 0.24%). Тем не менее, за, прости господи, PHP предлагают как будто бы в два раза больше денег. Что происходит?



Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от PhD

Что там и как делает ваш знакомый или майнкрафт

Последний достаточно сравнить с minetest по ресурсоемкости. Он как полагает любому поделию на java выжирает всю память. 4 гига оперативы минимум чтобы поиграть в игру с графикой 1995 года

anonymous
()
Ответ на: комментарий от PhD

В java никогда не ломали обратную совместимость.

Да ладно. Всё, что появилось после Java 8 вызывает боль или как минимум опасение. Вот почти год назад вышла Java 21 - новая LTS версия. Как много проектов её уже осилило? Некоторые на Java 17 толком перейти не могут, например Apache Flink.

zg
()
Ответ на: комментарий от zg

У меня друг в банке работает, так они в том и позатом году только стали переписывать ява 6 код на ява 8, и шас переписано тока 60%-75% банковского софта. На Java 8, о 11 или 14 версии они даже боятся заикаться руководству

menangen ★★★★★
()
Ответ на: комментарий от DarkAmateur

Да по факту java уже давно не развивается. Щас идёт дрочь на асинхронность и прочую многопоточность через абстракции фабрик. А именно как язык она застопорилась знатно. Недаром Google перешёл на Kotlin да и все нормальные люди понимают, что лапшекод на java всегда был и будет, и щас ниша явы это легаси в 75% случаев

menangen ★★★★★
()
Ответ на: комментарий от zg

Ну если ты рантайм меняешь с jvm 8 на jvm 17, то куча продакшн кода падает, конечно, придётся переписывать. Тот же minecraft 1.14 какой нить возьми, там узкоспецифичного кода почти нет, но и он падает на jvm > 8

menangen ★★★★★
()
Ответ на: комментарий от DarkAmateur

Обратный пример: языковой сахар с C# льют тоннами, но почему-то за мелкомягкой экосистемой он так и не стрельнул.

Потому что Microsoft не стала продвигать свою CLR во все возможные архитектуры, как это делала Sun с JVM. Ну а теперь место занято.

zg
()
Ответ на: комментарий от MOPKOBKA

Насколько я знаю, весь реальный многопоточный код не пишут на зелёных потоках в Яве, там наследуются от Thread и пошло поехало, те ушли от green threads. А вот как раз в Go с его Channels внедрили по сути, корутины, на которых через каналы решается большинство типичных проблем многопоточности, особенно с вводом выводом, и без тормозов вот этого спауна потока на каждый HTTP запрос

menangen ★★★★★
()
Ответ на: комментарий от Cergoo

Да, но там посыл был в том, что в софте используется куча фреймворков, обмазались с ног до головы. И при смене рантайма jvm 6 -> 8, 8 -> 11/14 падают процессы, примерно как при старте старого Minecraft на jvm 11

Тч легкая переносимость java стала утопией. Щас поломали там многое, во всей экосистеме. Только ради чего - не очень понятно. Гонка с C# и Node.js в асинхронщину? Попытка занять нишу в serverless и быстрым стартом jvm и последующей смертью на каждый чих / http запрос аля lambda вычисления….

menangen ★★★★★
()
Последнее исправление: menangen (всего исправлений: 1)
Ответ на: комментарий от ya-betmen

Нет. Но люди любят обмазываться всякой непортабельной фигней. Даже если в проекте всё гуд, кто-то может притащить кривую либу.

По-моему это смена темы. Есть проект, он работает скажем на Java 6, а теперь должен на Java 8. Какая «кривая либа» может ему в этом помешать? Просто поддержание сторонних библиотек в актуальном состоянии, а так же исправления и улучшения собственного кода не имеют никакого отношения к переходу на новый JVM.

zg
()
Ответ на: комментарий от zg

Какая «кривая либа» может ему в этом помешать?

Любая кривая.

Классический пример идея, которая работала только не определенных версиях определённых ждк ибо её разрабы любят трогать жабу за внутренние интерфейсы.

Соответственно всё что лезет в кишки или байткод может сломаться. Для нормально написанного кода это скорее исключение (да баги в ждк никто не отменял). Но где ж ты этот код найдёшь если в каждом втором проекте либо говноломбок либо говноспринг.

ya-betmen ★★★★★
()
Последнее исправление: ya-betmen (всего исправлений: 1)
Ответ на: комментарий от ya-betmen

Байткод, он и в Африке байткод, как бы ты в него не лез. Байткод 6-й джавы прекрасно поддерживается 8-й. Использование внутренних классов поломалось только в 9-й джаве, а учитывая LTS только в 11-й. Поэтому ты либо конкретно покажи что работало в 6-й и сломалось в 8-й, либо признай, что ерунда это всё.

zg
()
Ответ на: комментарий от ya-betmen

Ты ничего конкретного не упомянул. А я ещё на Java 1.4 писал, так что знаю о чём говорю. Нет там нихрена такого, что вот прямо целый проект нужен для перехода с 6-й на во 8-ю. Тем более в банке.

zg
()
Последнее исправление: zg (всего исправлений: 1)
Ответ на: комментарий от zg

я ещё на Java 1.4 писал

Молодец, возьми с полки пирожок.

Тем более в банке.

Вот тем более в банке проект и нужен, ибо как я уже сказал там (если не рассматривать возможные завязки на разные вендорские сервера) будет например говноспринг. С подпорками. А второй спринг никто на восьмую жабу портировать не станет, значит нужно будет переезжать на новый, значит отвалятся подпорки, вероятно аоп, скорее всего секьюрити и хз что ещё. А ещё есть либы, которые тоже могут быть на говноспринге и их тоже нужно перетаскивать.

Если интересно, то просто сходи и почитай что с чем совместимо.

Бывает ещё кто-то грешным делом скалу принес в проект. Это отдельное веселье.

Ещё могут быть вендорские либы которых нет для новой жабы, точнее есть но они хотят новую версию вендорского софта, а за него не уплочено.

ya-betmen ★★★★★
()
Ответ на: комментарий от anonymous

Любой коллбэк в С выглядит примерно так, а все потому что не завезли функциональный тип. В Паскале я могу записать type CharFunc = function(param: Integer): Char; и все понятно сразу.

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от LongLiveUbuntu
#include <stdio.h>

typedef void (message)(void);
 
void hello() { printf("Hello, World \n"); }
void goodbye() { printf("Good Bye, World \n");}
 
int main(void)
{
    message* mes;

    mes = hello;
    mes();
    
    mes = goodbye;  
    mes();

    return 0;
}


Hello, World 
Good Bye, World

или чего там тебе не хватило?

olelookoe ★★★
()
Ответ на: комментарий от olelookoe
typedef void (message)(void);

Это что за клинопись?

Нет, я могу ганглий напрячь и понять, но нельзя ли без его напряжения код читать? В этом и недостаток всех C-языков: они на ровном месте заставляют бедную программисткую голову болеть, вместо того, чтобы она болела над чем надо - алгоритмом решения.

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от menangen

У меня друг в банке работает, так они в том и позатом году только стали переписывать ява 6 код на ява 8, и шас переписано тока 60%-75% банковского софта. На Java 8, о 11 или 14 версии они даже боятся заикаться руководству

остались бы на коболе и не занимались мастурбацией.

вот, внезапно: прочитал GNU COBOL FAQ – проникся идеей.

  1. КОБОЛ естественноязычный невозбранно транслируется в няшную сишечку.

  2. которая затем компилируется си компилятором. то есть, оттранслированное кобольное – это обычный си только с несколько более странным рантаймом.

  3. как замена какому-нибудь перлу, или например питону – вполне себе, только конпелируемая.

  4. судя по FAQ есть 10500 привязок и библиотек – через сишечку, конечно же.

  5. тут вам и ява, и вала, и запуск интерпретаторов типа питона, lua или rexx-а православного.

  6. и всякие gtk, tcl/tk, sql, gt.m с мумпсами там тоже есть.

а рисовалка графиков на коболе! это же просто песня:

вот график косинусов: 4.12. FUNCTION COS

#!/usr/local/bin/cobc -xj

       COPY line-sequential-template REPLACING
       ==:INPUT-NAME:== BY =="no-input"==
       ==:OUTPUT-NAME:== BY =="cos-plot.gp"==

       ==:DATABOOK:== BY
       ==

       01 gnuplot.
          05 value
          'set terminal dumb ; set grid ; set tics scale 0 ; ' &
          'set title "FUNCTION COS" ; plot "-" using 1:2 with lines'.

       01 x            pic s9v99.
       01 domain       pic s9v99.
       01 degrees      pic s999v9.
       01 answer       pic s9(5)v9(5).

       01 output-data-line.
          05 x-out     pic -9.99.
          05           pic x value space.
          05 ans-out   pic -9(5).9(5).

       ==
       ==:CODEBOOK:== BY
       ==

       perform open-files

       move length(gnuplot) to output-actual
       move gnuplot to output-line
       perform write-output

       compute domain = pi * 3
       move length(output-data-line) to output-actual
       perform varying x from 0.0 by 0.25 until x > domain
           compute degrees rounded = x * 180 / pi
           move cos(x) to answer
           display "cos(" x ") ~= cos(" degrees "°) ~= " answer

           move x to x-out
           move answer to ans-out
           move output-data-line to output-line
           perform write-output
       end-perform

       perform close-files

       call "SYSTEM" using "gnuplot cos-plot.gp"

       perform delete-output
       ==
       .

это всё компилируется в бинарник и запускается сразу же (-xj)

COPY line-sequential-template REPLACING
       ==:INPUT-NAME:== BY =="no-input"==
       ==:OUTPUT-NAME:== BY =="cos-plot.gp"==

вот это настоящая мощь, нормально реализованного препроцессора

даже боятся заикаться

вот, а ведь остались бы на коболе – и не пришлось бы ничего переписывать.

вообще ничего – только компиляторы менять и обёртки с батарейками.

anonymous
()
Ответ на: комментарий от anonymous

See Sample shortforms for the line-sequential-template.cob listing.

8.31 Sample shortforms

The line-sequential-sample.cob template is used when samples require input or/and output text files.

*> Modified: 2015-12-09/02:58-0500
 identification division.
 program-id. SAMPLE.

 environment division.
 configuration section.
 repository.
     function all intrinsic.

 input-output section.
 file-control.
     select optional input-file
         assign to :INPUT-NAME:
         organization is line sequential
         file status is input-status.

     select output-file
         assign to :OUTPUT-NAME:
         organization is line sequential
         file status is output-status.

 data division.
 file section.
 fd input-file record varying depending on input-actual.
    01 input-line pic x(8192).
 fd output-file record varying depending on output-actual.
    01 output-line pic x(8192).

 working-storage section.
 01 input-status         pic xx.
 01 input-actual         pic 9(4).
 01 output-status        pic xx.
 01 output-actual        pic 9(4).
 01 status-number        pic 99.

 :DATABOOK:

 procedure division.
 demonstration section.

 :CODEBOOK:

 goback.

 open-files.
 open input input-file
 perform input-check

 open output output-file
 perform output-check
 .

 close-files.
 close input-file
 perform input-check

 close output-file
 perform output-check
 .

 delete-output.
 delete file output-file
 .

 read-input.
 read input-file
 perform input-check
 .

 write-output.
 write output-line
 perform output-check
 .

 input-check.
 move input-status to status-number
 if status-number greater than 9 then
     display "Error with input-file: " :INPUT-NAME:
        " status: " status-number
        upon syserr
     perform hard-exception
 end-if
 .

 output-check.
 move output-status to status-number
 if status-number greater than 9 then
     display "Error with ouput-file: " :OUTPUT-NAME:
        " status: " status-number
        upon syserr
     perform hard-exception
 end-if
 .

*> informational warnings and abends
 warnings section.
 soft-exception.
   display space upon syserr
   display "--Exception Report-- " upon syserr
   display "Time of exception:   " current-date upon syserr
   display "Module:              " module-id upon syserr
   display "Module-path:         " module-path upon syserr
   display "Module-source:       " module-source upon syserr
   display "Exception-file:      " exception-file upon syserr
   display "Exception-status:    " exception-status upon syserr
   display "Exception-location:  " exception-location upon syserr
   display "Exception-statement: " exception-statement upon syserr
 .

 hard-exception.
     perform soft-exception
     stop run returning 127
 .

 end program SAMPLE.

This template needs to be used with

COPY line-sequential-template REPLACING
==:INPUT-NAME:==  BY =="quoted-name-optional"==
==:OUTPUT-NAME:== BY =="quoted-name-created"==
==:DATABOOK:==    BY ==working-storage definitions==
==:CODEBOOK:==    BY ==procedure statements==
.

ещё я где-то LUNAR LANDER на коболе видел, с фокала переписанный.

нормальные осовременненные исходники – SDL там и прочее через сишные привязки.

anonymous
()
Ответ на: комментарий от menangen

да и все нормальные люди понимают, что лапшекод на java всегда был и будет, и щас ниша явы это легаси в 75% случаев

ява это кобол который хуже самого кобола

за что боролись – на то и напоролись.

а между тем, начиная с COBOL 2002 там тоже поддерживается ООП

вот представь, если бы ВООБЩЕ НИЧЕГО не пришлось бы переписывать

писали бы сразу и навека. идеально – на идеальном КОБОЛе, идеальными программистами, ога…

anonymous
()
Ответ на: комментарий от zg

да кто там вообще его туда продвигал кроме мигелюшки с моной?

и где оно, это GTK# и прочее?

вот GCJ например когда-то существовал в природе, компилируемая ява.

так нет же – надо опять добавить синтаксического сахарку и вагонов несовместимостей…

anonymous
()
Ответ на: комментарий от menangen

в православном Limbo из Inferno всё то же самое.

и вообще, вот ты будешь смеяться – но есть язык Occam, из транспьютеров.

так там ровно те же каналы Хоара реализованы ещё для диалекта алгола.

по сути оккам это такой алгол 68 с SEQ/PARSEQ/ALT многозадачностью через каналы Хоара.

вот например можно взять Algol68G Genie или Algol68C компилируемый, и потыкать на предмет библиотек и совместимостей.

внезапно, если опять же рассматривать его как такой компилируемый в сишку диалект со странным рантаймом.

то почему бы не взять эти самые libutf8 (runes), lib9 из Plan9/Inferno и библиотеку для каналов из этой самой Plan9/Inferno.

и воткнуть в этот самый алгол.

ах, да. тогда примерно Occam и получится.

в Limbo по сути взяли регистровую VM (Dis) а не стековую VM как в жабе и доделали язык си-подобный, заткнув его основные недостатки, которые ещё с BCPL тянутся:

  • типизированные ссылки, а не безтиповые указатели

  • ADT для модулей

  • горутины корутины и типизированные синхронные каналы Хоара, для синхронизации (в смысле конкурентности)

  • добавили модульность и динамическую загрузку

по сути, Go – это Limbo отвязанный от Dis с родным рантаймом (вместо Dis+8c/8l/8a) + ad hoc полиморфизм интерфейсов

plan9 – это лимбо на няшной сишечке kencc

Inferno – это Plan9 как виртуальная машина (регистровая, а не стековая, как в жабе)

Android – это Inferno->Java/Limbo->java/Dis VM->Dalvik->AOT(…) поверх Plan9->Inferno->Linux kernel - glibc + boinc (NDK) + OpenGL api поверх этой как бы Java

(как бы жаба, но не совсем. J# и MSJAVA тоже как бы совсем не Java. потому что COM API а не сертифицированная верифицированная VM. да и GCJ c Harmony в этом смысле совсем не джава)

внезапно – а что, так можно было? не менять каждый раз синтаксис и прочий сахарок – а просто добавить Occam-овские каналы Хоара на уровне сишной библиотечки из plan9?

например, добавить их в GNU COBOL какой-нибудь…

и не переписывать ничего от слова совсем, ну вообще ничего.

anonymous
()
Ответ на: комментарий от zg

на Java 1.4 был например веб-браузер HotJava был написан.

архивы это примерно 1.5 Мб, ЕМНИП бинарников которые работают непонятно где.

самолично запускал его примерно в то же время под старой солярой и какой-то современной ему виндой.

и он даже работал.

там вообще исходники есть? вот почему бы его до современной новомодной JVM не портировать?

или всё опять гвоздями к какому-нибудь старому API приколочено?

а то вот ведь был бы номер – современный маложрущий веб-браузер на чистой ява, такие дела…

… ещё бы современный веб под него портировать, вот был бы номер.

write once – run everywhere – обещали они…

anonymous
()
Ответ на: комментарий от LongLiveUbuntu

и все понятно сразу.

тыц

Денис Гаев. Ксерион: язык и технология программирования

последовательность и ясность.

Предположительно, многие конструкции языка имеют более последовательный и компактный синтаксис, чем их аналоги в Паскале, Java и C++. Можно сказать, что для синтаксиса языка характерна большая «ортогональность», чем для многих других языков.

Если некая конструкция языка синтаксически правильна, она почти всегда имеет какую-то разумную семантику и может быть полезна в определенной ситуации.

Кроме того, язык минимизирует или полностью исключает необходимость в дублирующих описаниях: каждый объект языка должен быть описан только один раз. Многие часто употребляемые языковые конструкции могут быть записаны более компактно. Активное использование макроопределений let также может значительно «уплотнить» программу (возможно, в ущерб ее понятности).

примеры кода там в конце ниже про более однородное параметрическое.

исходники лежат примерно с того же времени на sourceforge, ксерион – это интерпретатор на lexx/yacc (а могли бы осилить и конпелятор в какую-то сишечку или например, LLVM).

вот был ещё такой AI Легалов про «процедурно-параметрическую парадигму» программирования:

20220423_04_legalov.pdf

Приводится ряд специфических особенностей языка процедурно-параметрического программирования.

Реализованная процедурно-параметрическая парадигма позволяет преодолеть ряд недостатков, присущих объектно-ориентированному подходу, обеспечивая эффективную эволюционную поддержку динамического множественного полиморфизма, применяемого в мультиметодах.

Для этого предлагаются обобщенные записи и параметрические процедуры. Для повышения гибкости при расширении программ используется новая модульная структура.

pppfirst.pdf

Процедурно-параметрическая парадигма программирования. Возможна ли альтернатива объектно-ориентированному стилю?

и вообще, вот такой вот

кластер метапарадигм

про всякие прочие разные.

anonymous
()
Ответ на: комментарий от LongLiveUbuntu

а чтобы завезти в C функциональный тип нужно реализовать ту самую обезьяну, и джунгли, а не только банан.

например, возьмём те же лямбды в C++ и пример который приводил monk про const указатель и лямбду с синтаксическим мусором.

который однако если сахарок указать – функтор оператор () будет показывать протечку дырявых абстракций.

то есть, ну это как бы лямбда, но не совсем лямбда.

вы не понимаете, это другое. просто некогда объяснять, лол.

это же не какие-то там first class objects , first-class environments в духе John Schutt, kernel, vau-expressions.

здесь вы будете вынуждены каким-то образом реализовывать эти первокласные концепции через второкласную низкоуровщину.

абстракции из которой будут протекать.

например, нужно реализовать сборщик мусора чтобы память выделялась как контролируемая или изобретать что-то типа него – для препроцессора и генерируемых им выражений.

и что-то думать про замыкания с продолжениями. то есть, про исключения и многопоточность.

и проконтролировать, что дырявые абстракции снова не протекают.

ах да. язык же сишечка не может никак это обеспечить. и ++ сишечка тоже не может.

дырявые абстракции такие дырявые.

anonymous
()
Ответ на: комментарий от anonymous

Кое-где немного притянуто за уши и мониторы Хоара (примитив синхронизации) почему-то упомянуты как каналы, но это мелочи. В остальном - это первый комментарий из всей темы который хочется лайкнуть. Видно глубокое понимание этой вашей сути вещей.

Анонимус все ещё могет, жаль что не под своим ником.

Obezyan
()
Ответ на: комментарий от anonymous

ещё я где-то LUNAR LANDER на коболе видел, с фокала переписанный.

хаброзапись

Вообще, это уже не первая попытка написать игру на Коболе. В 2016 году, 7 лет назад, некто Эмерсон представил свой проект, написанный на PowerCOBOL 3.0. Эмерсон скопировал Lunar Lander, двухмерную аркаду для игровых автоматов, в которой нужно посадить аппарат на поверхность астрономического объекта. Разработчик развил идею дальше простого клонирования: в игре можно не только прилуниться, но и совершить посадку на Венеру, Меркурий, Землю, Юпитер или Марс. Ещё один клон Lunar Lander авторства Кристофера Джонсона написан для GnuCOBOL, но вообще поддерживается любой системой с Коболом стандарта 1985 года.

собственно, репозиторий с блогозаписью

нормальные осовременненные исходники – SDL там и прочее через сишные привязки.

у Кристофера Джонсона lunar.cob – буквальный перевод с ФОКАЛа (интерпретируемого фортрана).

а SDL исходники с привязками КОБОЛа к сишечке лежат у Тома (про которого хабрастатья)

github.com/contextfreecode/cobol-explore

game.cbl

основной рендерер game-render.cpy

ну и чем это отличается от обычной сишечки на SDL?

вот например. хелловорд из кобола hi.cbl транслируется в вот такую сишечку hi.c hi.c.h

anonymous
()
Ответ на: комментарий от Obezyan

я так понимаю, что и сети Петри, и Пи-исчисление, и accept...select из Ады про рандеву между task,task entry и @synchronized контролируемоей памятью и вот это самое из Occam-а и Plan9/многозадачность про каналы на своей сишечке, и читать/посылать в канал на Лимбо, и собственно, на Go – это примерно про одно и тоже, да и Occam как раз про это самое.

только с разных точек зрения и реализовано немного по разному.

вот например, был CPC = continuation passing C, на нём даже какой-то торрент клиент написали.

так там тоже поверх этого можно было бы реализовать. как обычно на схеме и реализуют.

в общем-то далее нужно это развивать в акторную модель и какой-нибудь язык Pony с различными типами ссылок у акторов чтобы компилятор научился эффективно распараллеливать.

anonymous
()
Ответ на: комментарий от anonymous

Тут можно немного разделить все эти попытки на два основных подхода:

  1. подход через «конечные автоматы» с передачей состояния.

  2. подход через «диспетчер» мониторящий состочние.

Но в целом это лишь уровень абстракции внутри/извне, суть примерно одна, вы правы.

Obezyan
()

Тем не менее, за, прости господи, PHP предлагают как будто бы в два раза больше денег.

Что происходит?

известно что. и оно уже не раз происходило ранее. и ещё раз не раз произойдёт.

и ничего не исправить от слова совсем – жги, господь

Just as planned

John Ruskin, Common law of business balance тыц wiki

"There is hardly anything in the world that cannot be made a little worse and sold a little cheaper, and those who consider price alone are that man’s lawful prey. It’s unwise to pay too much, but it’s worse to pay too little. When you pay too much, you lose a little money – that is all. When you pay too little, you sometimes lose everything, because the thing you bought was incapable of doing the thing it was bought to do. The common law of business balance prohibits paying a little and getting a lot – it can’t be done. If you deal with the lowest bidder, it is well to add something for the risk you run, and if you do that you will have enough to pay for something better.

панкам hoi

HOI POLLOI

Ruskin’s principle: «The hoi paloi always prefer an inferior, cheap product over a superior, more expensive one»

очередной Eric Naggum из comp.lang.pl1 отвечает:

> David Frank wrote: If it was so great, why didnt it succeed?

I hate to reply to you because you're such a jerk, but I have to admit that you 
are right in a way.  But it's really sad.  Here is what is going on: 

The truth of the matter is that Gresham's Law: "Bad money drives out good"  or 

Ruskin's principle: "The hoi paloi always prefer an inferior, cheap product over 
a superior, more expensive one" are what govern here.

That's why crap like C wins out over far better languages and
 stupid fools such 
as you continue to idolize FORTRAN.

As I said, it's really sad, but that's life in the big city.
The socialist  idea of the centrally managed economy is totally discredited. 
 On the other hand, the capatalist idea that the best product wins out in the end is 
sadly but equally false. 
 The fact is that most people recognize a totally 
inferior procuct for what it is and refuse to buy it; 
similarly hey see the superiority of the finest products 
but are unwilling to pay the price. 

In the end, they settle for mediocrity at an inflated price,
 as Ruskin so astutely observed.  

As I have said, sad, sad, sad.  

Unfortunately, Utopia, as its name implies, does not exist.
anonymous
()
Ответ на: комментарий от Obezyan

конечные автоматы пытались формализовать в автоматное программирование А. Шалыто про SWITCH-технологию и А.И. Легалов где-то там же про автоматное программирование.

то есть, как композицию более формально задаваемых конечных автоматов.

например, у Шалыто в SWITCH есть явно выделенная диаграмма – схема соединений (первая из трёх всего).

вообще, если пытаются совместить передачу – как в L4 синхронном например, send/recv.

то по сути нужны не отдельные примитивы а нечто их объединяющее (в канал, в семафоры, в рандеву и т.п.).

то это «состояние» надо как-то выделить в отдельный first class object или ещё какую сущность.

то есть это может быть уже не классическое императивное «изменение состояния» – а какое-то dataflow как точки синхронизации; рёбра графа, а не узлы.

anonymous
()
Ответ на: комментарий от zg

а на Java примерно 1.4 был например веб-браузер HotJava был написан.

архивы это примерно 1.5 Мб, ЕМНИП бинарников которые работают непонятно где.

извиняюсь, запамятовал. Не 1.5 Мб – а скорее, 5-10 Мб в архиве.

но это вместе с JRE и прочими прибамбасами.

JRE там JRE 1.1.7B в HotJava 3.0, в остальных ещё раньше.

скачать HotJava как исторические артефакты можно на tenox.pdp-11.ru:

HotJava/3.0, HotJava/1.1.5, HotJava/1.1.2

вот скажи мне, сертифицированный программист на Java 1.4.

под какую версию JVM, винды или линукса оно написано.

и как его просто тупо «запустить» как есть, без всяких заморочек.

ну или с заморочками – как вот это поделие портировать под современную JVM.

hjb3_0-linux.sfx это например shar архив 99/04/23 с некоторой hjb3_0.jar.

она тупо воспроизводимо запускается на современных линуксах или как обычно?

последний раз я его где-то в начале Y2K запускал.

вот ты хотел маложрущий браузер – так вот же оно.

а тут однако целый квест вырисовывается:

  1. как его вообще запустить в современном окружении или какое несовременное проще ему воспроизвести.

  2. что оно вообще умеет в плане поддержки стандартов современного веб на HTML 5.0, JS, CSS и вот это всё.

  3. как отреверсить и декомпилировать и портировать под современные стандарты (если есть вообще смысл).

исходников этого добра, ЕМНИП, не было никогда.

проще из соседней папочки того же сайта откопать Netscape или Mosaic древний какой-нибудь.

anonymous
()
Ответ на: комментарий от anonymous

конечные автоматы пытались формализовать в автоматное программирование

Дополню лишь, что не только пытались но и формализовали. Большинство современных ИИ в играх используют поведение на конечных автоматах, в том же Unreal Engine, конечные автоматы это основа Billboard - системы поведение Pawn NPC.

Даже Boston Dynamics использует их совместно с нейронками CV. Это до сих пор самый быстрый механизм принятия решений с сохранением состояния. Сколько лет прошло уже, 60-70?

то есть это может быть уже не классическое императивное «изменение состояния» – а какое-то dataflow как точки синхронизации; рёбра графа, а не узлы.

Я вам категорически рекомендую вылезать из под анонимуса, вашего хода мыслей и понимания вещей не стоит стесняться.

Obezyan
()
Ответ на: комментарий от anonymous

С кем ты вообще разговариваешь, кого цитируешь и что вообще сказать хотел? Речь, вообще-то, шла о банковском софте. Если знаешь, то просто приведи пример кода из backend-а, который работал в Java 1.4 и перестал в 1.8

zg
()