collapse

* Posts Recentes

Emulador NES em ESP32 por dropes
[22 de Abril de 2024, 14:14]


Arame de Estendal por almamater
[18 de Abril de 2024, 16:16]


O que é isto ? por SerraCabo
[12 de Abril de 2024, 14:20]


Amplificador - Rockboard HA 1 In-Ear por almamater
[11 de Abril de 2024, 20:46]


Meu novo robô por josecarlos
[29 de Março de 2024, 18:30]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]

Autor Tópico: Odin - A better alternative to C, C++ and maybe Rust.  (Lida 10015 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline blabla

  • Mini Robot
  • *
  • Mensagens: 257
Odin - A better alternative to C, C++ and maybe Rust.
« em: 05 de Setembro de 2023, 20:28 »
Boa noite a todos,

recentemente descobri uma simples e pequena linguagem de programação que me fascinou pela qualidade das decisões e opções de design da própria linguagem.

Essa linguagem de programação é o Odin e é uma linguagem, que se aprende em meros 3 ou 4 dias. Rapidamente uma pessoa consegue tornar-se produtivo na linguagem e é um verdadeiro prazer programar nesta linguagem.

O código escrito em Odin fica muito "clean" e é muito fácil de fazer os bindings do Odin para interoperar com C, com C++ ou com qualquer outra linguagem de programação usando o estilo de chamadas de funções do standard C (ABI).

Ao longo da minha vida, já estudei muitas linguagens de programação mas esta conseguiu-me surpreender muito pela positiva.

Vejam o seguinte e julguem por vocês próprios.

Odinlang Creator Ginger Bill Talks Odin




Odin Programming Language: An Introduction



Para aprenderem a linguagem de programação vejam os dois links seguintes, o primeiro tem o manual completo da linguagem.

Odin Overview

https://odin-lang.org/docs/overview/


E o segundo link tem um ficheiro de demo.odin com da linguagem de programação cobrindo quase toda a linguagem.

demo.odin

https://github.com/odin-lang/Odin/blob/master/examples/demo/demo.odin


Outra coisa muito interessante da linguagem é que é muito fácil de ler o código das suas libs, quer seja da core lib quer seja da vendors lib.

A linguagem é completamente open source e funciona em Windows, Mac e Linux. Neste momento, tem um compilador com backend em LLVM, mas em breve estará pronto um outro backend o Tilda que segundo ouvi promete a compilação de talvez umas 500K linhas de código por segundo. Também está a ser feito um transpiler que recebe código Odin e reescreve-o em código C para depois ser compilado por um GCC, um Clang ou outro compilador de C.


Obrigado,

Cumprimentos,
João Carvalho
« Última modificação: 17 de Setembro de 2023, 16:25 por blabla »

Offline blabla

  • Mini Robot
  • *
  • Mensagens: 257
Re: Odin - A better alternative to C, C++ and maybe Rust.
« Responder #1 em: 05 de Setembro de 2023, 20:33 »
Boa noite a todos,


Este por exemplo é um pequeno exemplo de um mini projeto em Odin com Machine Learning que interopera com uma lib de inferência num modelo em C++ desenhado em Python mas que está a ser usado dentro de um programa de Odin.

GitHub - Simple-Machine-Learning-in-Odin

https://github.com/joaocarvalhoopen/Simple-Machine-Learning-in-Odin


Este é um exemplo de como usar Kerneis escritos em CUDA da Nvidia dentro de Odin.

GitHub - CUDA from the Odin Programming Language


https://github.com/joaocarvalhoopen/CUDA-from-the-Odin-Programming-Language


Este é um exemplo de hot reloading de código quando um ficheiro muda dentro de Odin.

GitHub - Hot reload of code in Odin on file update


https://github.com/joaocarvalhoopen/Hot-reload-of-code-in-Odin-on-file-update



Este é um exemplo inacabado de um port de um programa de sistemas, que eu tinha feito em que se tem um screen reader para uma shell em Linux inicialmente em C e que aqui passei parte para Odin. (vejam o meu original em C que está porreirinho, foi feito numa noite)

GitHub - better_pina_shell - A better screen reader shell for Linux


https://github.com/joaocarvalhoopen/better_pina_shell--A-better-screen-reader-shell-for-Linux


E tenho mais no meu github.

Obrigado,

Cumprimentos e boa noite,
João Carvalho

Offline blabla

  • Mini Robot
  • *
  • Mensagens: 257
Re: Odin - A better alternative to C, C++ and maybe Rust.
« Responder #2 em: 24 de Setembro de 2023, 17:52 »
The not so obvious things that are somewhat talked about in the end of the overview, but should be in a more proeminante position are:

How do you find responses to Odin questions?

1. From the site, read the Overview, from the beginning to the end, more then once, not on the site because it's white background but on the github markdown .md file with dark background. I generated a PDF from it, with pandoc.

https://github.com/odin-lang/odin-lang.org/blob/master/content/docs/overview.md

2. In the Odin github, read the "examples/demo/demo.odin" more then once.

https://github.com/odin-lang/Odin/blob/master/examples/demo/demo.odin

3. Install VSCode with OLS plugin, LSP - Language Server (could not make it work on Doom Emacs)

4. Search for what you need to know about the language in the code of core and vendors library directory with:

Código: [Seleccione]
grep -r -C4 -e "name_to_search"

5. Search the Odin Discord forum, in the up right corner seach box, for strings in the past messages that explain all those topics.

6. In Odin the C mapping are your great friend!!!!
   Use it to extend and connect Odin to everything made in C, C++ or any other language with the C ABI.
   Read and use well the

http://odin-lang.org/news/binding-to-c/

7. In Linux the glibc is your friend, to do systems Programming, use it and the syscalls and the complete C library mapping, in the packages

Código: [Seleccione]
core:c
core:c/libc

Best regards,
João Carvalho
« Última modificação: 24 de Setembro de 2023, 17:54 por blabla »

Offline blabla

  • Mini Robot
  • *
  • Mensagens: 257
Re: Odin - A better alternative to C, C++ and maybe Rust.
« Responder #3 em: 27 de Setembro de 2023, 18:33 »
Uma perspetiva muito interessante e o inicio de uma série de um curso de programação low level em Odin ...

Videos - The Odin programming language with Rickard
 
https://www.youtube.com/playlist?list=PLEQTpgQ9eFCGlQa2z0j_TQTGggHOIF8Z1


Cumprimentos,
« Última modificação: 08 de Outubro de 2023, 16:05 por blabla »

Offline blabla

  • Mini Robot
  • *
  • Mensagens: 257
Re: Odin - A better alternative to C, C++ and maybe Rust.
« Responder #4 em: 09 de Novembro de 2023, 18:06 »
Boa noite,

Acredito que esta serie vai agradar a todas as pessoas que gostam de programação low level C ou C_plus_plus e claro a todos os que já ficaram encantados pelo feitiço do Odin. :-)

Esta é uma nova serie de Odin que considero muito interessante. O primeiro vídeo descreve motivação e no segundo link, intitulada Odin in Practice explica em grande detalhe como construir programas já de alguma complexidade, mas sempre baseados em simple principles.

Video - New Odin series announcement



Video series - Odin in practice

https://www.youtube.com/playlist?list=PLEQTpgQ9eFCEg0CTd0KkiqgUpP5V0JM4-

Obrigado,

Cumprimentos,
João Carvalho