Регистрация  |  Вход

Apex (Java) to Javascript

Интересная мысль меня сегодня посетила.

Предыстория - делаю очень интересную, интерактивную страницу на javascript (ractive).
Все ничего, страница с кучей связанных данных, одно удовольствие замутить все это дело на js.
НО возникла проблема - заказчик хочет чтобы вся бизнес логика была на стороне apex.
Т.е. на каждый чих (каждое изменение данных) я должен собирать всю страницу в json - отправлять в salesforce, десериализировать в DTO и скармливать нужному методу. Потом все это возвращать обратно на страницу и перестраивать ее.
ЭТО ЖЕСТЬ. Весь смысл от JS решения теряется. Получается обычный тормознутый Visualforce.
Как я не прошу перенести всю или хотя бы часть бизнес логики на фронтенд, ничего не получается и в принципе я понимаю - логика тяжелая и используется в разных местах, а с фронтенд получится дублирование с огромной вероятностью что-то сломать.

Вот собственно идея. А можно ли как-то скомпилировать (предварительно) или на лету apex в javascript? Была бы интересная задумка, которая бы открывала много интересных возможностей. Я просто не раз слышал про компиляцию других языков в javascript и возможно что-то существует и для самой java.

Если кто сталкивался с подобной темой поделитесь информацией.

Понятное дело что писать свой компилятор дело не простое, но может это возможно?

В моем случае можно было бы скомпилировать бизнес логику из apex в js для последующего использования на странице и заказчик бы не боялся бы дублирования логики (но стал бы бояться результатов компиляции )

Интересная мысль меня сегодня посетила. 

Предыстория - делаю очень интересную, интерактивную страницу на javascript (ractive).
Все ничего, страница с кучей связанных данных, одно удовольствие замутить все это дело на js.
НО возникла проблема - заказчик хочет чтобы вся бизнес логика была на стороне apex.
Т.е. на каждый чих (каждое изменение данных) я должен собирать всю страницу в json - отправлять в salesforce, десериализировать в DTO и скармливать нужному методу. Потом все это возвращать обратно на страницу и перестраивать ее. 
ЭТО ЖЕСТЬ. Весь смысл от JS решения теряется. Получается обычный тормознутый Visualforce.
Как я не прошу перенести всю или хотя бы часть бизнес логики на фронтенд, ничего не получается и в принципе я понимаю - логика тяжелая и используется в разных местах, а с фронтенд получится дублирование с огромной вероятностью что-то сломать.

[b]Вот собственно идея.[/b] А можно ли как-то скомпилировать (предварительно) или на лету apex в javascript? Была бы интересная задумка, которая бы открывала много интересных возможностей. Я просто не раз слышал про компиляцию других языков в javascript и возможно что-то существует и для самой java. 

Если кто сталкивался с подобной темой поделитесь информацией.

Понятное дело что писать свой компилятор дело не простое, но может это возможно?

В моем случае можно было бы скомпилировать бизнес логику из apex в js для последующего использования на странице и заказчик бы не боялся бы дублирования логики (но стал бы бояться результатов компиляции :D )

Это кстати вопрос к Wilder с его синтаксическим анализатором apex (вроде бы что-то подобное недавно обсуждали)

Это кстати вопрос к Wilder с его синтаксическим анализатором apex (вроде бы что-то подобное недавно обсуждали)

Уже проходили это в Google Web Toolkit (это я про Java -> Javascript), сначала все восторгались, потом плюнули и сейчас пациент скорее мертв, чем жив. Все таки Apex (и соответственно Java) сильно отличаются от Javascript (не только синтаксисом - это ерунда, а больше подходом). Нельзя что-то просто наконвертить в Javascript и надеятся что заработает (на сложном проекте, Hello World работает всегда). Уже сейчас выросло поколение Web-девелоперов, не понимающих как работет HTTP, "знающих" Angular, но незнающих Javascript.

Уже проходили это в Google Web Toolkit (это я про Java -> Javascript), сначала все восторгались, потом плюнули и сейчас пациент скорее мертв, чем жив. Все таки Apex (и соответственно Java) сильно отличаются от Javascript (не только синтаксисом - это ерунда, а больше подходом). Нельзя что-то просто наконвертить в Javascript и надеятся что заработает (на сложном проекте, Hello World работает всегда). Уже сейчас выросло поколение Web-девелоперов, не понимающих как работет HTTP, "знающих" Angular, но незнающих Javascript.

Наверное соглашусь с тобой.
Все-таки сильно поспешил с идеей. Посидел потом подумал. Все эти "переконвертации" не стоят того чтобы решить одну-две частные задачи. Лучше сделать над собой усилие, изучить JS и реализовать все на чистом JS. Если бы это была хорошая идея, то думаю что ее бы до меня давно придумали и реализовали.

Наверное соглашусь с тобой. 
Все-таки сильно поспешил с идеей. Посидел потом подумал. Все эти "переконвертации" не стоят того чтобы решить одну-две частные задачи. Лучше сделать над собой усилие, изучить JS и реализовать все на чистом JS. Если бы это была хорошая идея, то думаю что ее бы до меня давно придумали и реализовали. :D 

Mike V
Уже сейчас выросло поколение Web-девелоперов, не понимающих как работет HTTP, "знающих" Angular, но незнающих Javascript.

Вот тут хочу возразить. Люди которые знают Angular уж точно в JS и HTTP больше разбираются чем те кто знает JS=jQuery.

[quote="Mike V"]Уже сейчас выросло поколение Web-девелоперов, не понимающих как работет HTTP, "знающих" Angular, но незнающих Javascript.[/quote]
Вот тут хочу возразить. Люди которые знают Angular уж точно в JS и HTTP больше разбираются чем те кто знает JS=jQuery. :D 

На счет анализотора. Он был сделан для анализа и разбора структуры файла класса, но не как анализатор логики. Так что боюсь что с его помощью ты сможешь только сгенерить соответствеющую структуру на любом другом языке. А вот логику придется писать ручками.

На счет анализотора. Он был сделан для анализа и разбора структуры файла класса, но не как анализатор логики. Так что боюсь что с его помощью ты сможешь только сгенерить соответствеющую структуру на любом другом языке. А вот логику придется писать ручками.

Dmitry Shnyrev
Mike V
Уже сейчас выросло поколение Web-девелоперов, не понимающих как работет HTTP, "знающих" Angular, но незнающих Javascript.

Вот тут хочу возразить. Люди которые знают Angular уж точно в JS и HTTP больше разбираются чем те кто знает JS=jQuery. :D

Вопрос, что мы понимаем под словом "знают", могут написать простое CRUD приложение или что-нить посложнее.

[quote="Dmitry Shnyrev"][quote="Mike V"]Уже сейчас выросло поколение Web-девелоперов, не понимающих как работет HTTP, "знающих" Angular, но незнающих Javascript.[/quote]
Вот тут хочу возразить. Люди которые знают Angular уж точно в JS и HTTP больше разбираются чем те кто знает JS=jQuery. :D[/quote]

Вопрос, что мы понимаем под словом "знают", могут написать простое CRUD приложение или что-нить посложнее.