-добавлена вода, песок, лава, трава и переходы друг к другу – 0.0.17
-жидкости стекают в ямы – 0.0.17
-добавлена фоновая музыка, несколько звуков – 0.0.18
-добавлен менеджер диалогов – 0.0.18
-русский язык – 0.0.18
-кровь мобов – 0.0.18
RPG
> Java сам по себе является динамическим
Щито?
Iskander
> Щито?
Вы знаете признаки динамического языка? Динамический не значит с динамической типизацией. Хотя это определение конечно достаточно скользкое, так как эта самая динамичность языка скорее определяется интерпретатором, нежели самим языком.
Вот раньше С был самым обычным компилируемым языком. Пока для него не написали интерпретатор...
Iskander, _gamemaker_ - вижу собрались профи по Java :)
Собственно, внедряю Lua скрипты..
Ежики плакали, кололись, но продолжали кушать кактус :( Зачем? Зачем вам Lua, когда вы можете использовать Jython, вот почитайте как все просто http://habrahabr.ru/post/129064/
RPG
> Вы знаете признаки динамического языка?
Я умею читать википедию.
Dynamic programming language is a term used broadly in computer science to describe a class of high-level programming languages that execute at runtime many common behaviors that other languages might perform during compilation, if at all. These behaviors could include extension of the program, by adding new code, by extending objects and definitions, or by modifying the type system, all during program execution.
Ну-ка расскажи мне, как в джаве принято изменять систему типов, расширять объекты и определения типов в рантайме?
Ты писал когда нибудь на том же перле? Это вот динамический язык. Там легко можно у объекта добавить поля, методы, и даже сменить его тип прямо в рантайме. Там есть eval.
У джавы есть только рефлексия, это не делает ее динамическим языком.
RPG
> Вот раньше С был самым обычным компилируемым языком. Пока для него не написали
> интерпретатор...
И от того что есть VasyPupkin Pure C interpreter - Си сразу стал динамическим? Там стало можно расширять объекты, определения типов, изменять типы, имена и количество полей в структурах, да?
Ну вот смотри, для более лучшего понимания.
struct CStruct{ int a; char *b }; int main(int, char**){ CStruct s; /* что-то мы сюда добавляем - это же динамический язык? */ s.a = "MyString"; s.new_field= blablabla; }
Ну-ка, расскажи, что надо добавить чтобы этот код на языке С сработал. Можешь еще на джаве написать аналог. Ты заявил что С и джава это динамические языки. Вперед, покажи что надо написать чтобы сменить тип поля экземпляра структуры (или вообще определения структуры) и чтобы добавить в экземпляр структуры новое поле. Я очень хочу это увидеть.
Обрати внимание, что такое динамический язык - определение выше. И почему говорят про динамический язык, а не про динамический рантайм.
И больше не пиши бред.
Foror
> Зачем вам Lua
Мне он не нужен, ты зачем меня то приплел?
А почему бы HTML5 и webGL не использовать?
Psycho
я думаю потому что тут не стоит вопрос выбора технологий.
Iskander
Мне он не нужен, ты зачем меня то приплел?
Тебя я приплел к тому, что ты не разбираешься в java, но строишь из себя эксперта :)
-загрузчик карт из .bmp – 0.0.19
Foror
> Тебя я приплел к тому, что ты не разбираешься в java, но строишь из себя
> эксперта :)
Да ну? На основании каких моих слов ты сделал подобные утверждения? Мой единственный пост в этой теме был #32.
Слишком жирно, тролль.
Iskander,Foror,RPG
Пожалуйста, не разводите флейм. Для этого есть соответствующие ветки на форуме.
Iskander
> И от того что есть VasyPupkin Pure C interpreter - Си сразу стал динамическим?
> Там стало можно расширять объекты, определения типов, изменять типы, имена и
> количество полей в структурах, да?
Теперь дочитываем википедию до конца:
> These behaviors can be emulated in nearly any language of sufficient complexity
И вообще до конца лучше всё дочитать.
И could include != must include. Так что ответ - да, вася может написать интерпретатор для си. Но он не станет прототип-ориентированным, это уже другая песня.
Iskander
> Ну-ка, расскажи, что надо добавить чтобы этот код на языке С сработал. Можешь
> еще на джаве написать аналог. Ты заявил что С и джава это динамические языки.
Так кто мешает? Я же сразу сказал что это полностью зависит от интерпретатора, а не от языка. JVM'ов для той же жабы - миллион. И наличие прототипов не единственный признак динамического языка.
Кстати, то что вы привели в качестве примера является всего лишь приемом прототип-ориентированного подхода, т. е. структура класса копируется для каждого объекта и потом может быть изменена для каждого объекта по отдельности. Принцип же ООП как раз в том, что все объекты под одну копирку - класс, который железен и расширять его можно только наследованием. И тут Java конкретно сливает JavaScript. Прототипы все-таки уже особенность языка...
Java компилится на лету, может подгружать новые куски кода и классы, и т. п., на уровне байткода тоже при желании можно выполнять махинации. А сборка мусора - не рантайм операция?
RPG
> > These behaviors can be emulated in nearly any language of sufficient
> > complexity
Само собой. Как вариант - представлять все объекты в программе в виде map<string, void*> например. Вполне эмуляция. Только вот от этого C и Java динамическими не станут.
RPG
> Так кто мешает?
Ну покажи как. Хочешь я покажу как сменить родителя в рантайме на перле? Ты вот сказал что С это динамический язык. Я попросил тебя показать, как сделать на С какие-то характерные для ДЯ операции.
> да, вася может написать интерпретатор для си. Но он не станет прототип-ориентированным, это уже другая песня.
Именно. Потому что язык - это язык, при чем тут версия интерпретатора или компилятора. Ты в одном и тот же посте пишешь противоречивые вещи.
>Я же сразу сказал что это полностью зависит от интерпретатора,
> а не от языка. JVM'ов для той же жабы - миллион.
Не неси чуши, в чем не разбираешься. Все JVM стандартизированы, язык у них у всех одинаков, все JVM подчтиняются жестким спецификацим и должны обеспечивать полную совместимость как исходников, так и скомпиленного байт-кода. ЯЗЫК НЕ ДИНАМИЧЕСКИЙ. При чем тут платформа? Мы про язык говорим, а не пр платформу. Ты разницу между языком и реализацией интерпретатора вообще понимаешь? Ты только что сказал в прошлом предложении, что какой бы интерпретатор не написали, сам язык от этого парадигму не поменяет.
>И тут Java конкретно сливает JavaScript.
Потому что JavaScript это динамический язык, а Java - нет.
>Прототипы все-таки уже особенность языка...
Вот именно, языка, а не интерпретатора.
>И наличие прототипов не
> единственный признак динамического языка.
Ну я перечислил выше, даже выделил что общепринято выносят в признаки ДЯ. Так какими из этих признаков все-таки обладает джава? Ответь на вопрос пожалуйста.
Динамическая подгрузка библиотек если что, в эти признаки не входит, равно как и сборка мусора.
RPG
> А сборка мусора - не рантайм операция?
Рантайм. И что? А еще выделение памяти, например - рантайм операция. И, скажем, открытие и чтение из файлов - тоже рантайм операция. Ты к чему вообще сборщик мусора приплел? Речь о динамических языках, наличие или отсутсвие сборщика мусора глубоко параллельно.
RPG
> может подгружать новые куски кода и классы
На С++ скомпиленном с помощью MSVS компилятора тоже можно динамически подгружать dll в которых находятся куски кода и классы. От этого С++ не стал динамическим.
Ты уже сам запутался что такое динамический язык. Не придумывай отсебятину и не путай теплое с мягким. Язык это язык, реализация интерпретатора это реализация интерпретатора. Язык это грамматика, типизация, порядок вычисления выражений и тому подобная заумь. К реализации интерпретатора это глубоко паралельно.
Тема в архиве.