#GitHub - Zen-kun04/WLang: A programming ...
1 messages · Page 1 of 1 (latest)
nefasto (hablo de rust)
La idea está buena pero le falta flexibilidad
Claro, aún está a la versión 0.0.2
Osea que sólo es un prototipo
@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 😄
realmente no tiene un sentido práctico
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
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
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
en el caso de angular y next también, no cambian los conceptos
toda la web es lo mismo
en sus casos cambian la arquitectura
👀
en vez de main le pondria body pero boe
lo dejo en main por 2 razones:
- 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)
- voy a agregar la etiqueta main en el body como forma de buena practica
cositas para la URL
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.
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

eso es literalmente lo que tiene html
igual que los h1
y el resto de cosas
para eso mejor que se lean la documentación de html
es un html con una sintaxis diferente
para eso, a alguien que recién está empezando, le conviene ver el estándar
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
si, y cuando vayan al CSS tengan que pasar por una documentacion totalmente nueva desde cero, con una sintaxis totalmente diferente y con conceptos totalmente nuevos
y los mismo con JavaScript
entonces vas hacer un mix? o sea hacerlo más complejo para gente nueva?
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
complejo no, mas sencillo pero completo
bien, siendo realistas
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
por qué no se podria ?
.
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
a diferencia de otros transpiladores como Nim/V con el caso de C/C++ por ejemplo
cómo que no?
en la vida real sí
para programar tienes que estudiar
no pueden dedicarse a web sin saber html, css y js
son estándares
si aprendes Python necesitas primero saber sobre el lenguaje C ? Ya que Python se interpreta y se pasa a codigo C
no es un transpilador, y no
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
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
TypeScript transpila a JS
no tiene nada que ver py
no es lo mismo en ningún sentido
en este caso sí
.
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
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)
bien, te explico mejor
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
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...
pero si el propio WLang es capaz de integrar TODO lo que hay en HTML, CSS y JavaScript, por qué se necesitaria aprender los estandares ?
me gustaria entenderte pero no le veo logica
C no es un estándar, menos en backend. Rust no tiene nada que ver. Ninguno de los dos son estándares de nada ni son transpiladores
no entiendo yo que no estás entendiendo vos, negas que un programador frontend web necesita obligatoriamente saber html, css y js?
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
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 ?
porque en el mundo real es necesario aprenderlos, aunque haya 400 lenguajes o transpiladores que te agarren una sintaxis y te devuelvan el build con esos 3, vos en la vida real como programador frontend necesitas saber html, css y js
si nos vamos a implicancias técnicas, añade complejidad semántica y sintáctica combinar 3 cosas en una
pero si eres freelancer, o emprendedor, o trabajas en una empresa que implementa WLang. Por qué necesitarias aprender HTML, CSS o JavaScript si ya el lenguaje implementa todo con documentacion incluida ? Es que te juro que no entiendo a lo que te refieres
te estás yendo muy a futuro jajaja, falta definir muchas cosas, así todavía no es práctico llevarlo a un proyecto ni siquiera. No digo por el desarrollo (que recién empezó) sino por el enfoque directamente
es una buena intención mal ejecutada
lo que mostraste y explicaste hasta ahora no es práctico
.
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
y por qué lo seria ?
por qué no se puede hacer ?
.
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 🤷
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
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 🤔
el problema no son las features, es la sintaxis en sí
sabés lo que es un language spec?
ni idea
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
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
reitero que te recomiendo investigar más sobre diseño de lenguajes
el problema es lo que ya te dije
desacomplamiento
pero me mencionas eso solo por convenciones o como va la cosa ?
entre lenguaje de programación y lenguaje de marcado y estilado
el diseño de lenguajes sí sigue ciertas reglas, porque es lo que le da sentido. Cuando creas un lenguaje estás creando una forma de escribir algo, es un idioma, vos en un idioma tenés cohesión y coherencia al escribir
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
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
sí
.
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
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
ahí estás confundiendo cosas
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
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...
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
nop
porque el spec de wlang se extiende a uno mucho más grande
porque es incompatible lo que querés combinar
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 ?
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
sí
no es viable
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
entonces no va a ser alternativa a html, css y js
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
bien, no pienses en el programador ahora
estás pensando en DX
si
el DX viene después
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
porque el DX no se ve directamente en el spec
sí por un lado, si querés pretender buena adopción
te juro que no te contradigo por joder o lo que sea, intento entender lo que dices
pero el spec define la sintaxis y semántica
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
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 ^^
ah sí, obvio, no te quiero tirar para atrás
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!
muchas gracias ❤️
espero que este hilo no lo elimine nadie que hay mucha info valiosa 👀
en otro servidor mandé un mensaje sobre libros, lo reenvío por acá que tiene sobre esta área
si querés más avísame que tengo para recomendar
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
No creo que necesites el segundo
para WLang no
pero para otros tipos de lenguajes si
para los compilados es mejor basicamente
segun entendi
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)
Ah pero en java es una chota
Boe
Nel
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)