Какой язык программирования наиболее перспективный?

  • 🔴 13:59 Повітряна тривога в Харків.обл.
  • #441
Блин, ну нет языков Turbo Pascal и Oracle есть языки Pascal и SQL(PL-SQL)
 
  • 🔴 13:59 Повітряна тривога в Харків.обл.
  • #442
  • 🔴 13:59 Повітряна тривога в Харків.обл.
  • #443
Предлагаю составить список "мертвых" языков (не всех, а основных)

Гарантированно "мертвых" - это будет сложно, т.к. для почти любого популярного в прошлом ЯП с большой вероятностью найдется какая-нибудь legacy система, которая до сих пор поддерживается.

Но если этот фактор исключить из рассмотрения, то, для затравки:

PL/1
Algol
Simula
Prolog
COMAL
Modula-2
APL
Oberon

И я бы еще добавил список ЯП "ограниченного использования":

Ada (разве что американская оборонка)
Fortran (научные расчеты)
Lisp (Emacs, некоторые САПР, также в виде диалектов служит скриптовым языком для некоторых приложений, например, Gimp и Audacity)
COBOL (поддержка бизнес-систем на мейнфреймах, написанных ХЗ когда)
Logo (? - не уверен, что в настоящее время используется даже для обучения)
 
  • 🔴 13:59 Повітряна тривога в Харків.обл.
  • #444
АДА активно используется не только в оборонке а и в промышленности.
по крайней мере очень много промышленных роботов-манипуляторов под ней жужжит.
при этом я исключаю авиаонику и все что в стандарте НАТО.
у нас в общем тоже - стандарт мил 1533 еще в советские времена в гост перевели.

поскольку сейчас большинство компутеров работает в развлекательных технологиях то на первое место вышло легкость написания -сопровождения. поэтому компиляторы утрачивают популярность.
подавляющее новых языков программирования - интерпретаторы.
а то и какие нить виртуальные машины.
да и такие виды переменных как переменные с фиксированной точкой - я и не слыхал есть ли в современных интерпретаторах
 
  • 🔴 13:59 Повітряна тривога в Харків.обл.
  • #445

неясно о каких интерпретаторах вы говорите, интерпретаторы давно стали непопулярны. Сейчас мода все компилировать, даже языки которые традиционно были интерпретируемыми компилируются JIT-ом.
В таких языках как C# такой тип есть - decimal, в Java - BigDecimal
 
  • 🔴 13:59 Повітряна тривога в Харків.обл.
  • #446
C++ форева! что ни говори, а на плюсы требуется оч много программистов... не раз видел рекламу в метро, к примеру, да и вообще по сайтам программерских контор
 
  • 🔴 13:59 Повітряна тривога в Харків.обл.
  • #447

"такие виды переменных" появились как следствие аппаратных и других ограничений.
в остальном оно источник вечного гемора, рудимент от которого надо избавляться, чем быстрее, тем лучше.
но некоторым оно до сих пор божья роса...
 
  • 🔴 13:59 Повітряна тривога в Харків.обл.
  • #448

абсолютно не верно. это первая реализация ММХ команд
АДА изначально делалась на свой собственный ада процессор с аппаратной же реализацией кода самого языка ада. при этом этот процессор изначально был 32 разрядным. 386 процессора тогда еще и в планах не было.
просто поскольку в те времена компьютеры в основном использовались для расчетов и управления то и 8 знаков после запятой нафиг никому не нужны.

все инженегры знают - 4ех знаков после запятой достаточно
я в той или иной мере поработал с древними языками типа PL, фортран, не говоря про паскаль и си.
ну и че - пришел я к товарищу - он веб программер - стою у него за спиной и легко понимаю его код на перле.
ну разве что имена переменных стали длинее - раньше до 8ми символов
но как тут правильно уже замечали - язык без опыта его применения в контексте задач - смысла не имеет.
поэтому если коммьюнити работает на яве - надо изучать яву , если перл - то перл. сначала надо разобратся в какой сфере бушь реализовывать свои скилсы


ну васчета как тока входишь в мир *никсов - так сразу скрипты и интерпретация. а поскольку весь вэб это процентов на 99 никсы - то соответсвенно перлы и пхп и прочее. я уж не говорю про яву с ее собственной машиной. кстати визуал барсик тоже из той же оперы.
краем уха слыхал что и си шарп тош недалеко ушел.
не компилит в машинный код а сворачивает как Форт или Паскаль в свой свернуто-сшитый код. а потом исполняет.
разве не так ?
 
  • 🔴 13:59 Повітряна тривога в Харків.обл.
  • #450
А может ты и женщин понимаешь?
угу - поэтому до сих пор не женат

В таких языках как C# такой тип есть - decimal, в Java - BigDecimal

только что погуглил - просмотрел - это абсолютно не то !
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.

Floating Point and Decimal Types
A C# floating point type is either a float or double. They are used any time you need to represent a real number, as defined by IEEE 754. For more information on IEEE 754, visit the IEEE Web Site. Decimal types should be used when representing financial or money values. table 2-2 shows the floating point and decimal types, their size, precision, and range.
Table 2-2. The Floating Point and Decimal Types with Size, precision, and RangeType Size (in bits) precision Range
float 32 7 digits 1.5 x 10-45 to 3.4 x 1038
double 64 15-16 digits 5.0 x 10-324 to 1.7 x 10308
decimal 128 28-29 decimal places 1.0 x 10-28 to 7.9 x 1028

в яве тоже не то - постить не буду - но люди на форумах плюются от БИГдецимал. при приведение его к нужному виду.
 
  • 🔴 13:59 Повітряна тривога в Харків.обл.
  • #451
все инженегры знают - 4ех знаков после запятой достаточно

не неси хуйни

стою у него за спиной и легко понимаю его код на перле.

жена у меня то же самое говорит.
правда если поменяться местами, результат пока не очень.
 
  • 🔴 13:59 Повітряна тривога в Харків.обл.
  • #452
это не хуйня - это проверенная жизнью поговорка инженегров-ракетчиков.


чет по твоим коментам не видно что ты програмер. потому как двумя постами выше ( да другими в этой теме ) говорится о том что язык программирования в отрыве от области применения обсуждать бесполезно.
 
  • 🔴 13:59 Повітряна тривога в Харків.обл.
  • #453
это не хуйня - это проверенная жизнью поговорка инженегров-ракетчиков.

а. понятно. тех самых, что до сих пор блок-схемы малюют.

чет по твоим коментам не видно что ты програмер.

по твоим тем более.


тебя в пещере какого периода откопали?? мелового или юрского?
 
Останнє редагування:
  • 🔴 13:59 Повітряна тривога в Харків.обл.
  • #454

не так. совсем не так. Рассмотрим на примере C#:
1) На входе имеем исходный текст (текстовый файл)
2) После компиляции получаем exe, который на самом деле является контейнером для IL байт-кода. Этот exe и распространяется конечным юзерам
3) При запуске этого exe файла, управление передается JIT (Just In Time) компилятору IL кода. Который компилирует IL-байт код в машинный код (аналогичный тому что производят классические компиляторы). JIT компилятор знает на каком конкретно типе проца нужно выполнить код, какие есть ресурсы и т.п. С учетом этого он максимально эффективно компилирует функцию-точку входа в IL байт-коде в машинный код и передает ему управление. При компиляции все вызовы функций заменяются на передачу управления в JIT
4) Когда машинный код скомпилированной функции Main дойдет до вызова метода, управление попадет опять в JIT и он скомпилирует этот метод. После этого все ссылки на этот метод будут заменены на адрес уже скомпилированного машинного кода. Т.е. при втором, третьем и т.д. вызове, уже просто вызовется скомпилированный ранее код.

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

Есть тут и узкое место - первоначальный запуск приложения может занять больше времени чем нативный код от классического компилятора C++. Это тоже решается путем пердкомпиляции всего кода и размещении в системном хранилище уже скомпилированного кода.
Это делается путем запуска ngen.exe install <имя сборки>
После такой операции, при запуске exe файла с IL байт-кодом, система не станет его компилировать, а возьмет просто уже готовый скомпилированный машинный код из системного хранилища и запустит на выполнение.

Все тоже самое относится также и к Java, и не только. JavaScript, LUA и другие скриптовые языки тоже как правило компилируются JIT'ом


Но это еще не все. Байт-код хранит много информации и это дает возможность прямо во время выполнения анализировать, обращаться и вызывать неизвестные типы данных/методы и даже генерировать новые прямо в рантайме (reflection). Это дает огромнейшие возможности, которых классические языки практически лишены.

Могу точно утверждать что Java, C#, JS, LUA сегодня используют JIT. И я не слышал чтобы где-то пользовались интерпретаторами для них.
 
Останнє редагування:
  • 🔴 13:59 Повітряна тривога в Харків.обл.
  • #455
они в АСУНИИВУГЛУСКР и слов то таких не знают.
зато навсегда осталась привычка бороздить просторы оперного тятра и вещать с броневичка.
по ней они кстати и идентифицируются.
 
  • 🔴 13:59 Повітряна тривога в Харків.обл.
  • #456
Чтобы не быть голословным, вот пример как выполняется программа на C#:
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.


Замечу также что в отличие от C++ JIT'у по барабану какой тип процессора используется - x86 или x64, она будет выполняться всегда на родном для процессора машинном коде. На x64 просто больше ресурсов программе будет доступно.
 
  • 🔴 13:59 Повітряна тривога в Харків.обл.
  • #457
не так. совсем не так.
--skip--

оказывается именно так по сути - компилится не в код х86 а в код своей виртуальной машины.

я тут спросил у людей что такое си шарп - мне ответии - так микрософт обозвал свою ява-машину потому что когда он сделал чет вроде J++ - то на него в суд подали. чтоб отстали - назвал си шарп.
 
  • 🔴 13:59 Повітряна тривога в Харків.обл.
  • #458

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


способность сотрудников АСУНИИВУГЛУСКР высасывть из пальца хуиту, абы не читать, иногда просто поражает.
самое интересное, что сам же придумщик быстро начинает в нее верить...

 
  • 🔴 13:59 Повітряна тривога в Харків.обл.
  • #459

вы так ничего и не поняли. C# использует полноценную модель компиляции. Никто не мешает компилировать C# код в машинный, только смысла в этом нет, т.к. это сделает исполняемый файл зависимым от железа и системы.
Компиляция C# в машинный код происходит в два этапа:
1) Компилируется исходный код в универсальный байт-код.
2) На машине пользователя байт код компилируется в машинный, это дает возможность при компиляции использовать максимум оптимизаций, которые невозможны для C++ компиляторов.

Например если вы скомпилируете C++ код с оптимизациями для процессора Inter Core Duo E6750, то ваш исполняемый файл не будет работать на других процессорах. У C# нет такого недостатка, т.к. оптимизация машинного кода происходит непосредственно на машине пользователя. Поэтому исполняемый файл написанный на C#, будет работать на любом процессоре и при этом использовать оптимизации доступные для этого процессора. На C++ вам пришлось бы скомпилировать пол сотни однотипных исполняемых файлов для каждого из существующих процессоров.

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


не совсем так, майкрософт хотел изменить Java, чтобы возможности этого языка были лучше приспособлены к Windows. Сильно изменить. Но Sun была против. Тогда майкрософт сделали свой аналог, ни в чем себя не ограничивая, с учетом всех необходимых требований и с учетом граблей на которые до этого наступала Java. Сделали полностью новую платформу, чтобы не зависить от старых рудиментов. В этом изюминка C#.

C# уже вытеснил C++ с рынка десктопных приложений для Windows, это уже давно свершившийся факт. C++ используется только в старых проектах - там где уже есть куча кода на C++ и переписывать все слишком дорого. Но даже в таких проектах, новые модули обычно на C# пишут.
 
Останнє редагування:
  • 🔴 13:59 Повітряна тривога в Харків.обл.
  • #460
У Java был фатальный недостаток =)
Кста странно, но у M$ часто так.
Сами концепции CLR ИМХО намного лучше чем у JVM
А вот реализация в плане кроссплатформенности...
Mono не то.