ПроектыФорумСобираю команду

Джаву на халяву (2 стр)

Страницы: 1 2 3 4 Следующая »
#15
(Правка: 23:43) 23:38, 26 сен 2024

Mephistopheles
> Это же просто функции.
Ну то есть нет.

Что с событиями, тоже нет?

> > такого нет, это решается аннотациями в одно слово
> угу ломбок по сути стандартная библиотека.
напишите кодом пример того ,что имеете введу ...
неужели так сложно ввести в язык грамотных конструкций? Поэтому он и гниет ...

#16
1:43, 27 сен 2024

tac
> Ну то есть нет.
гетеры и сетеры есть в любом ооп языке

tac
> Что с событиями, тоже нет?
и события есть. Ты с луны упал что ли?

tac
> неужели так сложно ввести в язык грамотных конструкций?
каких конструкций? тебе спец синтаксис под каждый шаблон нужен?

tac
> Поэтому он и гниет ...
да ничего там не гниет, все цветет и развивается:)

tac
> напишите кодом пример того ,что имеете введу ...

@Getter
@Setter
public class Author {
    private int id;
    private String name;
    @Setter(AccessLevel.PROTECTED)
    private String surname;
}

в шарпе это вроде директивы называется.

#17
14:44, 27 сен 2024

Mephistopheles
> в шарпе это вроде директивы называется
Это бредом называется ...


Аналог этого какой?

public class A
{
  public event Change OnChangeId;

  private int id;
  public int Id
  {
    get {return id;}
    set 
    { 
      if (id != value) { if (OnChangeId != null) {OnChangeId();} }
      id = value; 
    }
  }
}
#18
(Правка: 15:33) 15:27, 27 сен 2024

tac
> Это бредом называется ...
Может и так, я терминологию шарпа плохо помню

tac
> Аналог этого какой?
Вот полный аналог

class A {
 public final Change onChangeId;

    private int id;

    public A() {
        onChangeId = new Change();
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        if (this.id != id) {
            this.id = id;
            onChangeId.notify();
        }
    }
}
#19
15:34, 27 сен 2024

Mephistopheles
> Вот полный аналог
чтд, свойств нет, событий нет, заменяется все 3-х этажными конструкциями функций и новых классов. Не язык, а старое д..мо.

#20
(Правка: 16:17) 16:04, 27 сен 2024

tac
> чтд, свойств нет, событий нет,
а чем тебе не свойства и события? они ровно такие же

tac
> заменяется все 3-х этажными конструкциями функций
та столькоже строчек что и в твоем примере

tac
> и новых классов.
каких новых классов?

#21
(Правка: 21:42) 21:35, 27 сен 2024

Честно говоря я был более высокого мнения о яве...

Даже в моей любимой второй макаке есть сеттеры и геттеры...

Class Test
    Private

    Field id:Int

    Public

    Property id:Int()
        Return id
    Setter( id:Int )
        Self.id=id
    End
End

Ну или как вариант:

Class Test
    Private

    Field id:Int

    Public

    Property id( id:Int )
        Self.id=id
    Getter:Int()
        Return id
    End
End

Отстой все эти ваши египетские скобки! Они только читабельность кода ломают!

И что в яве нет событий на уровне языка?

#22
21:53, 27 сен 2024

то ли дело си-плюс-плюс
https://www.codeproject.com/Articles/1256352/CppEvent-How-to-Impl… g-Standard-Cp

#23
0:07, 28 сен 2024

mingw
> И что в яве нет событий на уровне языка?
сахара нету да. А события в стандантной либе еще с 6 версии точно есть. Ну и 3 либы для всевозможных вариантов событий так же гдето с 6 версии существуют.

mingw
> есть сеттеры и геттеры...
да какая разница функция это или сахар для функции или аннотация?) это все свойства как не крути.

#24
0:39, 28 сен 2024

Mephistopheles
> да какая разница функция это или сахар для функции
Это не позволяет превратить поле в свойство, т.е. отсутствие инкапсуляции для данных.

#25
1:54, 28 сен 2024

tac
> Это не позволяет превратить поле в свойство, т.е. отсутствие инкапсуляции для данных.
чиво? у тебя поле приватное куда уж инкапсулированнее.

#26
3:27, 28 сен 2024

tac
> Это не позволяет превратить поле в свойство
Ты, вроде, уже несколько лет программируешь, а перлами до сих пор сыпешь как из рога изобилия. Удивлён.

#27
(Правка: 8:35) 7:25, 28 сен 2024

mingw
> И что в яве нет событий на уровне языка?
нет

#!
> то ли дело си-плюс-плюс
в с++ нет событий, их тоже надо писать самому. И корутин там тоже нет, но добавили в новых версиях с++. И рефлексии тоже нет в с++, но добавили в новых версиях c++. А ещё в с++ нет интерфейсов, от слова совсем, есть лишь абстрактные классы которые также есть в Java, но в Java есть и интерфейсы. (в c# они тоже есть, java всё таки ближе к нему по синтаксису). Но в Java нет структур, там для этого используются классы.

Java превосходный язык программирования не требующий большего, жаль там нет auto (c++) или var (js) или просто имя переменной (python), но там можно писать общий тип без указания типов ключей и значений, типо вместо HashMap<int, String> писать просто HashMap hm = getHashMap()

libGDX пусть и не содержит встроенного редактора (полно внешних), постоянно развивается, умеет работать с 3д анимированными моделями. То есть само 3д есть, но всякие шейдеры тени, ssao и прочее придётся взять у кого то с инета. Он хорош как для 2д, так и для 3д и пахнет старыми красками (HL1, Дальнобойщики1).
за счёт того что java работает под JVM, он может работать с рефлексией, поле любой доступности превращать в публичный. За счёт хуков (трансформеров) - возможность дописывать, изменять старый код новым. То есть автор игры может давно забросил код, а ты можешь взять и выпустить дополнение к игре.

Кроме того есть Kotlin, Scala, которые переводятся из Java кода в необходимый за счёт Intellij IDEA прямо на ходу.

ЗЫ: если ты сам написал публичный доступ к внутренней переменной и написал публичный метод для её установки - это и есть инкапсуляция. И за счёт волшебных слов по шаблону или по клику, IDE создаст их автоматически.

Java раньше была доступна каждому, сейчас только по регистрации. Это случилось на Java 8 и вызвало отторжения сообщества. И только лишь поэтому перспективные проекты решили не рисковать переведя свои проекты на другие языки. Сейчас для всех привычно что то скачивать только после регистрации и уже нет каких то предьяв к Java. Забыли старые обиды, а кто то и вовсе о них не знает.
Это самый лучший ЯП из тех с которыми я знаком. Он покрывает все задачи начиная от устройств ARM и заканчивая, сайтами, приложениями, Android устройствами, отдельными клиентами и серверами, и даже полноценными 3д проектами по типу Minecraft который используется LWJGL (с поддержкой Vulkan) и наследник (фреймворк, солянка из физ. движка, библиотеки шрифтов, звук и т.д.) которого является libGDX. Но графической части там нет, поэтому эта часть целиком в твоих руках, как захочешь и на сколько хватит сил, так и будет.

А новые версии Java 18 и выше дали такую свободу, что там без бутылки уже не разберешьcя, слишком много они всего добавили. Как и у c# 13.
И помните, игровые движки слишком тяжелые чтобы каждый раз иметь поддержку последний версий языка, а значит писать придётся на старых версиях.

#28
(Правка: 30 сен 2024, 19:17) 18:23, 28 сен 2024

Alastor-X
Если решил делать игру на Java, то выбор платофрм у тебя небольшой. Сразу забудь про любые приставки. Под десктоп игры в экосистеме Java есть библиотеки (тот же LWJGL о котором писали выше), но мало, а то что есть - бедно на функционал (очень многое придется дописывать руками). Можно глянуть в сторону Android, но там сейчас правит балом Kotlin, а Java присутствует лишь как легаси. Единственный более-менее нормальный вариант - небольшие онлайн игры, где на Java пишется бек, а клиент на чем-нибудь другом.

#29
18:51, 28 сен 2024

Salamandr
> Java превосходный язык программирования не требующий большего
сейчас это скорее сервера для ММО или для мобилок

хотя были времена, ИИ делали на яве пока питон не перехватил пальму
Ил2 тоже на яве

да чего скрывать, Space Haven, практически игра мечты (жаль replayability не завезли) как раз на libGDX

Страницы: 1 2 3 4 Следующая »
ПроектыФорумСобираю команду