LINUX.ORG.RU

Elm vs. PureScript

 , purescript, , ,


0

1

Кто нибудь использовал один из сабжей для коммерческого проекта? Какие плюсы/минусы? Что выбрать (для создания торговой площадки)?



Последнее исправление: kookoo (всего исправлений: 1)

Кто нибудь использовал один из сабжей для коммерческого проекта?

А разве сабжи совместимы с «коммерческими проектами»?!

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

А разве сабжи совместимы с «коммерческими проектами»?!

Хорошо, тогда напишите почему нет.

kookoo
() автор топика

Ух ты, сегодня первый раз узнал про PureScript.

Я тебе могу сказать, почему даже минимально отличающиеся от JS языки не будут популярны в индустрии. Тебе нужно за два дня сделать ${featurename}, ты ищешь готовые решения, но почти все готовые решения - на JS. Чтобы начать их использовать в Elm, нужно писать прослойку, а для сложных интерфейсов прослойка будет солидной толщины.

Использовать для коммерческих проектов Elm можно, если ты будешь уверен в том, что найдешь кодеров, которые будут на этом языке писать. А таковых — на один два порядка меньше чем тех, что готовы писать на JS.

byko3y ★★★★
()

НАВОЗ VS МОЧА. Бери ПХП или Жаву и не люби заказчику моск.

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

Я тебе могу сказать, почему даже минимально отличающиеся от JS языки не будут популярны в индустрии

Сюда всякие TypeScript, Dart и Kotlin не относятся?

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

Сначала носились с кофескриптом, потом с типОскриптом теперь с другим каким-то говном, а все лишь бы не учить javascript

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

У типОскрипта хотя бы обратная совместимость есть

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

Вообщем расклад такой:

Typescript - это ублюдский сишарп в браузере. Purescript/elm - haskell. Тот же coffeescript был копией Ruby. Пиарят весь этот мусор только смузихлебы и какие-то дебилы клинические для которых статические типизация сложна для осознания. Виной всему популярность веба, но бывает и обратная ситуация когда так называемые веб-макаки лезут в программирование контролеров (arduino)

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

Сюда всякие TypeScript, Dart и Kotlin не относятся?

TypeScript уже сейчас вполне популярен, потому что ты можешь скомпилировать на нем любой JS без изменений.

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

Так падажи:

Пиарят весь этот мусор… дебилы клинические для которых статические типизация сложна для осознания

В том же TypeScript строгая типизация (в других наверняка тоже). То наоборот, фронт-енд разработчики хотят строгую типизацию, раз сами себе клепают тот же TypeScript.

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

Как-то хз стоит ли вникать в TS ради строгой типизации и… и ещё чего-то такого важного и нужно но пока я об этом не слышал.

CryNet ★★★★★
()

Воспользовался бы поиском по форуму, что-ли, результатов-то мало. На самом лоре никого, кто бы писал на Elm или PureScript за деньги нет.

Elm ещё можно как-то in the wild (раз, два, три, четыре) заметить. Касательно него ИТТ просто феерический парад тупости: готовые компоненты и целые UI-киты есть, например. GraphQL даже есть! Правда, меня лично от использования Elm отталкивает максимально ущербный интероп с JS и необходимость замыкать на Elm вообще весь фронтенд, без адекватной возможности, например, частично переводить на него существующее приложение на React.

PureScript банально слишком сырой, хотя он представляет значительно более широкое подмножество хашкаля и спокойно подгружаем в вебпаке (привет, ClojureScript!), например. Компилятор высирает самые обычные CommonJS-модули, что позволяет использовать экспортируемые оттуда функции и данные в существующей кодовой базе на JavaScript. Вот это:

module Main where

import Prelude
import Control.Monad.Eff.Console (log)
import TryPureScript (render, withConsole)

showPerson o = o.lastName <> ", " <> o.firstName

main = render =<< withConsole do
  log $ showPerson 
    { firstName: "John"
    , lastName: "Smith"
    , age: 30
    }

компилируется в это:

"use strict";
var Control_Bind = require("../Control.Bind");
var Control_Monad_Eff = require("../Control.Monad.Eff");
var Control_Monad_Eff_Console = require("../Control.Monad.Eff.Console");
var Data_Function = require("../Data.Function");
var Data_Semigroup = require("../Data.Semigroup");
var Prelude = require("../Prelude");
var TryPureScript = require("../TryPureScript");

var showPerson = function (o) {
    return o.lastName + (", " + o.firstName);
};

var main = Control_Bind.bindFlipped(Control_Monad_Eff.bindEff)(TryPureScript.render)(TryPureScript.withConsole(Control_Monad_Eff_Console.log(showPerson({
    firstName: "John", 
    lastName: "Smith", 
    age: 30
}))));
module.exports = {
    main: main, 
    showPerson: showPerson
};

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

Что выбрать (для создания торговой площадки)?

Имхо лучше написать на TypeScript: у тебя и так будет возможность написать надёжный код, который тщательно проверит тайпчекер. У тебя будут алгебраические типы данных, типы-литералы, полноценный параметрический полиморфизм, перегрузки любой (на самом деле, не совсем любой) степени шибанутости, но при это ты сможешь спокойно на это всё натянуть React, время на изучение которого на порядок меньше, чем у Elm или PureScript. Maybe и Either можешь взять отсюда.

Princesska ★★★★
()

purescript — не для продакшна. Ещё можно потыкать reasonml. В общем, elm — это такой хаскелеподобный DSL для UI, reasonml — замаскированный окамл, к которому обычно идёт bucklescript, дающий хоть какой-то интероп с JS.

Если у тебя есть либо планируется команда веб-разработчиков — скорее всего, typescript будет пределом того, что стоит юзать в продакшне. Конечно, если у тебя не команда хаскелистов, которые хотят что-то для веба, тогда elm ок.

x3al ★★★★★
()

Раз тут стали все функциональные альтернативы предлагать, посмотри ещё на https://fable.io/

fsb4000 ★★★★★
()

PureScript - вечный proof of concept и avoid success at all cost. Борщ not included. Elm - неадекватный автор с комплексом бога-императора. Бери оба, не ошибёшься.

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

Это не фронт разработчики, а сишарпомакаки, которых заставляют писать на js

Гы-гы-гы бедные люди

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

TypeScript

Не относится, это практически ES6 с типами позволяющих статическую валидацию, никаких биндингов для игтеграции стороннего js кода ненужно, просто берешь и используешь любую библиотеку.

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

Какой-то эдакий jQuery нового поколения))

CryNet ★★★★★
()
3 сентября 2021 г.
Ответ на: комментарий от tz4678

Typescript - это ублюдский сишарп в браузере. Purescript/elm - haskell

Может, лучше все-таки тупоскрипт? %)

Nervous ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.