#GitHub - Zen-kun04/WLang: A programming ...

1 messages · Page 1 of 1 (latest)

polar elbow
#

A ver qué opináis

wispy river
#

nefasto (hablo de rust)

earnest trail
#

La idea está buena pero le falta flexibilidad

polar elbow
#

Osea que sólo es un prototipo

polar elbow
#

@icy island el tema es que todas esas librerias y sobre todo frameworks, tienen conceptos diferentes, y algunos tienen una sintaxis diferente a pesar de basarse en JavaScript.
Y no cualquiera puede aprenderse los estandares, como he mencionado reiteradas veces, he conocido personas que intentaron aprender desarrollo web desde lo mas basico y estaban muy perdidos. Y mas aun con JavaScript...
He mencionado a PHP solo como ejemplo de que la sintaxis cambia UN MONTON. Nunca dije que lo reemplazaria aunque tengo pensado hacer que WLang soporte HTML, CSS y JavaScript en una sola sintaxis, y eventualmente escalar a algo mas grande...

Pero gracias por tu opinion 😄

icy island
#

es buen proyecto, no lo estoy puteando

#

pero es obligatorio saber los estándares si se quiere dedicar a web

#

tiene muchas cosas pero así es el área, y así es el mercado que también lo requiere

polar elbow
#

ya, pero hay muchas cosas innecesarias que se pueden simplificar

#

aunque sea la sintaxis que eso es lo que mas jode

#

y lo segundo que mas jode en todo esto son los conceptos de ciertos lenguajes, librerias o incluso frameworks

icy island
#

svelte también es un compilador

#

te mete un montón de facilidades para desarrollo

#

no cambia los estándares, pero simplifica muchas cosas

#

agrega características built-in

#

vue también, es un poquito más extenso porque usa virtual dom

#

pero lo que digo es que no cambian los conceptos realmente

#

todos los frameworks y las librerías comparten los mismos

#

cambia la API

#

y es un cambio muy leve en la mayoría de casos, cambia el nivel de abstracción que da

#

hacer un lenguaje que unifique todo lo vuelve más complejo

#

más para alguien que recién está empezando

icy island
#

toda la web es lo mismo

icy island
polar elbow
wispy river
#

en vez de main le pondria body pero boe

polar elbow
#

lo dejo en main por 2 razones:

  1. muy tipico en lenguajes de programacion (el objetivo ademas de simplificar el desarrollo web, es de acostumbrar a la gente a lo que se suele hacer en otros lenguajes de programacion)
  2. voy a agregar la etiqueta main en el body como forma de buena practica
polar elbow
#

cositas para la URL

fallen wharf
#

siento yo que el problema que quieres arreglar no lo estás arreglando y lo estás volviendo más complicado de lo que realmente es, si una persona no sabe HTML no va a saber que es el head, etc. es lo que te están diciendo desde hace rato, es buena idea, pero no está bien planteada.

polar elbow
#

pero para eso esta la documentacion

#

la documentacion no tiene por qué explicar "qué hace cada cosa en el HTML"

#

simplemente se puede decir algo como:
head => datos de la web que sirven principalmente para el SEO (lo estoy vulgarizando evidentemente)
body => el cuerpo de la pagina, el contenido principal
footer => lo que se va a ver abajo del todo de la pagina

#

no hay ninguna necesidad de saber de HTML

icy island
#

igual que los h1

#

y el resto de cosas

fallen wharf
icy island
#

es un html con una sintaxis diferente

#

para eso, a alguien que recién está empezando, le conviene ver el estándar

polar elbow
# icy island eso es literalmente lo que tiene html

pero la gente no tiene por qué saber eso. Ellos ademas de "h1" ven "heading1" y tienen una documentacion ya en la pagina oficial, todo bien documentado y ya esta. Ademas que como dije, no hay sistema de tags que es medio raro, y toda la sintaxis esta centralizada

polar elbow
#

y los mismo con JavaScript

icy island
#

cuál es tu objetivo?

#

con el lenguaje

#

definí eso primero

fallen wharf
polar elbow
#

centralizar las sintaxis principales (HTML, CSS, JavaScript) en una sola, implementar buenas practicas + tipeo, y acostumbrar a los futuros desarrolladores de WLang a las sintaxis y conceptos generales de los lenguajes de programacion en general

polar elbow
icy island
#

totalmente sincero

#

no podés centralizar en un único lenguaje (transpilador) tres estándares como lo son html, css y js, crear un lenguaje desde cero con ellos 3

#

más por el caso de js

#

php es parecido, inyecta código php en el html y css

#

ahora, no cambia la sintaxis

#

no encuentro el sentido práctico

icy island
#

poder podés, no encuentro sentido

#

al final van a obligatoriamente tener que saber html, css y js

#

y si son nuevos, les conviene ver lo transpilado

#

no la abstracción

#

que en realidad es un mirror language

icy island
fallen wharf
icy island
fallen wharf
#

para programar tienes que estudiar

icy island
#

no pueden dedicarse a web sin saber html, css y js

icy island
polar elbow
#

si aprendes Python necesitas primero saber sobre el lenguaje C ? Ya que Python se interpreta y se pasa a codigo C

icy island
#

no se pasa a código C

#

el runtime está escrito en C pero no se transpila el código

#

lo tuyo sí es un transpilador

#

Nim sí transpila a C por ejemplo

polar elbow
#

no es un transpilador, pero si un intérprete. Si es un transpilador no cambia la cosa porque el desarrollador no necesita entender el codigo compilado, solo ver el resultado

icy island
#

TypeScript transpila a JS

icy island
#

no es lo mismo en ningún sentido

#

en este caso sí

icy island
#

en la vida real

#

es obligatorio si querés dedicarte a frontend web

#

saber html, css y js

#

después se pueden usar transpiladores

#

para agregar features built-in o abstracciones de DX

#

como lo es sass

#

para css

polar elbow
#

sigo sin entender tu punto. Si tu usas WLang para desarrollar tanto el lado de HTML, CSS y JavaScript y que con el transpilador ejecutas el comando necesario para transpilarlo a sus fuentes (todo minificado), no tiene mucho sentido tener que aprender HTML/CSS/JavaScript puesto que ademas de tener un comando para transpilarlo, también tendras el comando para escuchar en el servidor (crear un servidor para poder acceder al HTML, CSS y JavaScript, como un servidor de '"development").
Entonces, el desarrollador solo tendra que verificar que se vea como él quiere, y que se puede interactuar de la forma que quiere. No hace falta saber de HTML, CSS ni JavaScript si WLang sera capaz de reemplazar sin problema lo que hace cada uno (aunque sea muy ambicioso pero realista)

icy island
#

en la realidad, en el mundo real

#

tanto laboral como de software

#

en el área del frontend web es obligatorio saber los estándares que son html, css y js

#

no es una cuestión de lo que puede o no hacer la idea

#

es cuestión de la realidad que es esa, un programador que quiera dedicarse a esto va a tener que aprender temprano o tarde los estándares

polar elbow
#

ah vale, entonces en el area del backend en general vas a necesitar saber si o si los estandares de C y seguramente también ensamblador para poder entender un backend hecho en Rust por ejemplo y también por si quieres crear mini programas en ensamblador. Eso es me estas diciendo o me equivoco ?

Perdona, pero es que sigo sin verle logica a eso. Se han creado lenguajes de programacion (compilados, interpretados y transpilados) y hasta lo que yo sé no se ha necesitado tener conocimientos de los estandares de nada, simplemente leer, entender y practicar con su propia documentacion...

polar elbow
#

me gustaria entenderte pero no le veo logica

icy island
#

te estoy siendo realista, no sé si es desconocimiento tuyo o negación

#

pensas que un programador puede dedicarse a frontend con tu lenguaje? mundo laboral, mundo real

#

sin conocer html, css ni js

polar elbow
#

a ver, un desarrollador frontend necesitara evidentemente aprender HTML, CSS y JavaScript. Pero si hay un lenguaje que hace todo lo que esos 3 hacen (por completo, sin dejarse nada) y contiene una documentacion completa y bien explicada sobre cada cosa, como se implementa y demas, por qué se necesitaria aprender HTML, CSS y JavaScript ?

icy island
#

si nos vamos a implicancias técnicas, añade complejidad semántica y sintáctica combinar 3 cosas en una

polar elbow
icy island
#

lo que mostraste y explicaste hasta ahora no es práctico

icy island
#

por algo no surgió esto ya

#

sigue la separación de los 3

#

hay casos como php que integra una sintaxis y un runtime inyectandose en el html

#

hay otros casos que directamente no tocan html, css ni js

#

intentar unificar los 3 es un error, una falta técnica de desacoplamiento

#

es templates, estilado y lógica imperativa en una única sintaxis, es un:

html = css = js

polar elbow
#

por qué no se puede hacer ?

polar elbow
#

aja

#

reitero la pregunta: por qué no se puede hacer ?

merry moss
#

No vale para nada la pena aprender HTML, CSS y JavaScript. Si tienes un lenguaje simplificado es mucho mas rapido en 1 solo, mas que complicarte la vida aprendiendo cada cosa de esos tres. Solo basta con entender todo el tiempo que perederias. @icy island 🤷

icy island
# polar elbow reitero la pregunta: por qué no se puede hacer ?

cuando tenés un transpilador, el target es un scope en base a la lógica que suple la abstracción. Si vos tenés una sintaxis con 3 scopes surge un problema de acomplamiento, no tenes separación

además de que a cara del transpilador en sí tenés que manejar un spec mucho más largo que no se limita a un lang

#

es meter en el spec lógica imperativa, templates y además estilado

#

no tiene sentido en el diseño

#

por eso se separan las sintaxis

#

una sintaxis cubre un rango de responsabilidades

polar elbow
#

pero si el lenguaje es capaz de soportar los 3 otros lenguajes, con sistema de modularizacion y todo lo que tu quieras, por qué seria un error ? Si esta todo bien separado, documentado, escalable, y en una sola sintaxis 🤔

icy island
#

sabés lo que es un language spec?

polar elbow
#

ni idea

icy island
#

bueno ahí ya tenés para investigar, si te interesa esta área

#

por eso no entendés lo que te digo

#

es un pilar del diseño de lenguajes

#

se toma mucho en cuenta el scope sintáctico al diseñar algo

#

es lo que permite incluso llegar en ciertos casos al selfhosting

#

y es el problema que te vengo diciendo

polar elbow
#

vale, miraré mas a fondo eso, pero es que incluso ahora solo hablando por logica no veo por qué seria un error usar la misma sintaxis para 3 lenguajes. De hecho menciono "3 lenguajes" simplemente por HTML, CSS y JavaScript, pero literalmente seria solo "un solo lenguaje que es capaz de crear la estructura, estilo y funcionalidad de una web", nada mas

icy island
#

el problema es lo que ya te dije

#

desacomplamiento

polar elbow
#

pero me mencionas eso solo por convenciones o como va la cosa ?

icy island
#

entre lenguaje de programación y lenguaje de marcado y estilado

icy island
#

acá es lo mismo

#

solo que aplicado a las reglas que ya te dije

#

todos los lenguajes las siguen

#

por eso también antes de empezar a escribir la impl se hace el spec

#

me gusta que te metas a esta área, no tengo problema en ayudarte

fallen wharf
#

pero esta idea ya se habia visto antes, no?

#

me refiero, a que ya han habido casos asi y ninguno ha tenido exito

#

por lo mismo

icy island
#

y en la vida real nunca se apuesta por la unificación

#

en general en cualquier tipo de software se desacoplan paradigmas y responsabilidades en unidades independientes

#

en este caso html, css y js

polar elbow
#

ya pero para mi lo que me dices no tiene mucho sentido (y mas aun si me dices que todo esto es por "convencion" o lo que sea), porque si tomamos ejemplo de C, Python o cualquier otro lenguaje (principalmente los que mencioné ahora) son capaces de crear interfaces graficas, que vendria siendo lo mismo que una pagina web (ventana, botones, imagenes, textos, funcionalidades, clicks, etc) con su misma sintaxis. Claro, usando librerias (por ejemplo para Python seria Flet o Tkinter) pero seria usando la misma sintaxis que el propio lenguaje.

Entonces por qué mi lenguaje no podria hacer lo mismo si esta bien montado (teoricamente) ?

#

no lo digo a malas ni nada, me interesa el tema y lo que me recomendaste, pero intento entender lo que me dices

icy island
#

entre el lenguaje y la construcción por encima de él

#

vos estás definiendo una spec inviable

#

C es un lenguaje muy simple, 32 keywords

#

por encima de él se puede construir cualquier cosa

#

no significa que el diseño de C sea extenso

#

el spec sintáctico es chico

#

y es uno de sus fuertes

polar elbow
#

ya, pero en ambos casos, que sea C o WLang, ambos podrian hacer mas o menos lo mismo. El lenguaje C haria una interfaz grafica funcional (lo que vendria siendo como una web), y WLang te haria la web, lo mismo que C vaya...

icy island
#

mismo Rust se construye a sí mismo y podés hacer cualquier cosa, tiene un diseño coherente y muy bien pensado

#

más en el type system

#

pero es otro tema

icy island
#

porque el spec de wlang se extiende a uno mucho más grande

#

porque es incompatible lo que querés combinar

polar elbow
#

pero con el spec que seria muy grande, te refieres a que habrian un monton de keywords y funcionalidades muy extensas en el propio lenguaje comparado a lo que hay en HTML, CSS y JavaScript ?

icy island
#

hay una diferencia grande entre el lenguaje en el transpilador y el lenguaje por fuera del transpilador

#

C en el compilador es extremadamente simple

#

lo que podés hacer combinando esa simpleza sintáctica está por afuera

polar elbow
#

aaaah

#

vale vale

icy island
#

no es viable

polar elbow
#

pero es que de hecho sera mas pequeño

#

porque hay partes que se simplifican en el sentido de que te va a ahorrar ciertas partes

icy island
polar elbow
#

un ejemplo que te puedo dar, es que con solo el:


}```

te crea toda la estructura basica de un HTML. Con estructura basica me refiero a ciertos meta tags, algunos <html>, el <body>, <main>, etc
icy island
#

estás pensando en DX

polar elbow
#

si

icy island
#

el DX viene después

polar elbow
#

por qué ?

#

el objetivo de WLang es simplificar el desarrollo web a los desarrolladores que no saben

#

entonces hay que pensar en el DX

#

no sé, a mi me parece mas logico eso para este tipo de lenguaje

icy island
#

sí por un lado, si querés pretender buena adopción

polar elbow
#

te juro que no te contradigo por joder o lo que sea, intento entender lo que dices

icy island
#

a partir de ellos nace el DX

#

vos lo que querés hacer es inviable repito, realmente si se podría ya se hubiera hecho, pero es por lógica

#

mirá

#

tenes tres tipos muy diferentes de construcciones sintácticas

#

no podés compararlo con C porque C es un lenguaje de programación

#

mezclar un lenguaje de programación con un lenguaje estructurado y de estilos en una única sintaxis coherente es inviable de forma práctica

#

se explica solo

#

html al final es lo mismo que yaml por ejemplo, o que toml

#

la diferencia es su sintaxis e interpretación

#

si no lo entendés con html, pensalo como mezclar JS con YAML en una única sintaxis

#

sin crecer el spec a algo inviable de implementar

#

y ahora súmale CSS

#

entendés?

#

es lo que dije hace un rato, el diseño es a partir de un scope

polar elbow
#

voy entendiendo lo que estas diciendo. Te seré sincero, por ahora no puedo "creerte" por asi decirlo porque aun creo en mi idea y quiero ver hasta donde llego (porque me mola el concepto y el hecho de crear un lenguaje de programacion). Si veo que efectivamente se esta cumpliendo lo que dices, trataré de mejorarlo, y si después de intentarlo todo veo que DEFINITIVAMENTE, SIN REMEDIO es inviable, te notificaré.
Quiero simplemente comprobar eso.

Evidentemente te agradezco por toda la informacion que me diste, bsucaré mas sobre los specs y todo eso para obtener mas conocimiento sobre lenguajes de programacion, pero quiero seguir con WLang ^^

icy island
#

te quiero dar una visión realista del enfoque que querés darle a wlang

#

crear un lenguaje es hermoso

#

un compilador

#

transpilador

#

pero justamente tiene sus cosas, cuestión de aprenderlas

#

como la definición de un spec

#

como proyecto es muy bueno

#

si querés llevarlo a algo más que la idea y que no quede ahí, te mencioné esos aspectos a tomar en cuenta

#

suerte con el proyecto!

polar elbow
#

muchas gracias ❤️

#

espero que este hilo no lo elimine nadie que hay mucha info valiosa 👀

icy island
#

si querés más avísame que tengo para recomendar

polar elbow
# icy island

Un par de esos lo tengo en casa, y otros son los que tengo en mi lista de Amazon

#

Aunque ahí hay 2 libros muy importantes

#

Que también tengo en casa

#

vale ya he vuelto a casa

#

ahora te doy los 2 libros

#

"Compilers: Principles, Techniques, and Tools" -> escrito por Alfred Aho, Jeffrey Ullman, Ravi Sethi y Monica Lam
"Linkers and Loaders" -> escrito por John R. Levine

earnest trail
polar elbow
#

para WLang no

#

pero para otros tipos de lenguajes si

#

para los compilados es mejor basicamente

#

segun entendi

polar elbow
# icy island

Los que estaban ya en mi cesta:

  • Crafting Interpreters
  • Site Reliability Engineering
  • Software Architecture: The Hard Parts

Los que ya tengo en casa:

  • Introduction to Algorithms
  • Designing Data-Intensive Applications
  • Clean Architecture
  • Building Microservices
#

y claro, tengo muchos mas en mi casa

#

si te tengo que enumerar los libros SOLO DE INFORMATICA que tengo en casa, me llevaria media hora o algo asi enumerarlos 🤣

#

son como mas de 40 libros sobre distintos temas de informatica (lenguajes de programacion, sistemas operativos, microservicios, DevSecOps, C, game programming en Java, crear un game engine, redes, etc etc)

earnest trail
#

Boe

polar elbow
polar elbow
#

Se han agregado cositas de HTML pero también un sistema basico de componentes reutilizables (para la 0.0.4 lo haré dinamico con variables que es sencillo)