Programatori in limbaje exotice

Am dat de acest anunt pe Facebook:
https://www.qualitance.com/careers/cobol-developer/

Desi este un limbaj care are a aparut in 1959 vad ca inca mai exista cerere de dezvoltatori :slight_smile:

COBOL a fost un limbaj in care se faceau aplicatii business cand era la moda si acum il vad prezent in zona de banking alaturi de un mainframe

Programeaza cineva de pe aici in limbaje mai exotice ?
Cum ar fi:

  • cobol
  • erlang
  • haskell
  • rust
  • fortran
    si altele de care nu am auzit :smiley:

Daca da (sper) cum este programarea in aceste limbaje fata de cele “cunoscute” ?
Cum interfatati aplicatiile unele cu altele


Go probabil a fost exotic :grin:

2 Likes

Cobol folosesc mai multi prieteni care lucreaza pe la banci.
Eu am lucrat la un moment dat cu progress 4gl care era folosit in erp-ul mfg al celor de la qad.

1 Like

Un tip a scris o aplicatie care permite rularea de cod COBOL in NodeJS

Vad ca s-a discutat pe forum despre acesta

Un alt limbaj exotic - ADA. Seamana cu Pascal.

Fortran a aparut in 1957 si se foloseste la modul serios chiar si acum. A evoluat, avand chiar suport pentru programarea obiectuala. Suporta si programarea paralela: https://en.wikipedia.org/wiki/Coarray_Fortran

Bineinteles ca nu se foloseste pentru web development :slight_smile:
Dar e folosit pentru programarea stiintifica. La modul serios.

1 Like

Da, nu cred ca Go mai este exotic :slight_smile:

Pentru mine exotice ar fi, pe langa cele cu sintaxe incalcite, limbajele pfunctionale cu care nu m-am impacat niciodata :slight_smile:
Altfel un limbaj mai exotic in care am lucrat, dupa Bash care e criminal :scream:, ar fi Awk dar care de departe este de o utilitate uimitoare. Cei mai multi folosesc limbajul din spatele utilitarului Awk pentru scripturi de 1-2 linii insa in acesta poti face programe de procesare text extrem de complicate si utile. Gawk pentru cine nu stie are inclusiv capabilitati de retea cu alte cuvinte poti face un mic server ceea ce se poate dovedi foarte util in diverse situatii (small devices but not only).

LE: Alt limbaj exotic cu care am interactionat este cel de scripting de la Mikrotik (si asta tot brainfuck like).

2 Likes

Am facut cateva programe in awk. In bash fac exporturi de fisiere din baza de date :slight_smile:

Am facut un fel de serviciu web in bash

Am scris si 2 linii in sed pt a parsa un xml :grin:

Daca vrei sa-i strici ziua cuiva, dai sa faca ceva cu sed :sunglasses:.

1 Like

Fix așa a fost ziua mea de ieri (și pentru ca nu i-am dat de cap, continuă și astăzi). sed ftw! :smiley:

3 Likes

Cred că specializat e un cuvânt mai corect. Cam tot ce sa enumerat în lista aici, sans Rust, e folosit la greu, dar în domenii specifice.

Mai bag și eu câteva: R pentru statistică și ML, Matlab pentru inginerie, Mathematica pentru inginerie și “matematici computaționale”, K/J/APL mult in finanțe etc.

4 Likes

Mathematica si Matlab se folosesc si in cercetarea stiintifica la greu. Sau pentru cei mai saraci, Octave sau/si SciLab. Plus python cu ceva gen Jupyter sau SageMath. Dar astea nu sunt atat de vechi si aparent ‘obsolete’ pentru cei care n-au treaba cu domeniile.

La facultate am facut matlab la multe materii. Are asa numitele toolbox uri cu care poti sa faci multe lucruri cum at fii

  • scriere si testare algoritmi de control(pid)
  • procesare audio
  • procesare video
  • achizitii de date plus prelucrari diverse
  • machine learning
  • optimizare matematica
  • chestii financiare

Am mai lucrat cu Xilnix ISE si Verilog

“Limbajul” cu care mă confrunt eu acum e cel care e în Makefile(s). Trebuie să rulez ceva cod C++ care rulează ceva cod OpenCL pe un emulator FPGA și exemplele funcționează dacă rulez make TARGETS=sw_emu all. Dar când vreau să rulez executabilul simplu: no OpenCL devices found.

Face ceva acel Makefile ce nu am priceput încă. Am vorbit cu un prieten care a lucrat mulți ani în C++ și a zis Doamne ferește de Makefiles :smiley:

1 Like

Yup, make e dureros. Ușor de abuzat de asemenea.
Una dintre greșelile tinereții: https://github.com/horia141/bachelor-thesis/blob/master/Makefile

1 Like

Cea mai dementă chestie pe care am facut-o in Makefile a fost ceva de genul:

define DEFINE_TARGET

TARGETS += $(DEBS_DIR)/$($(1)_PKG_DEB)

$(DEBS_DIR)/$($(1)_PKG_DEB): $(SRCS_DIR)/$($(1)_PKG_SRC)
        $(GEN_DEB) icesdk-$(1) $($(1)_VERSION) $($(1)_PKG_SRC)

$(RPMS_DIR)/$($(1)_PKG_RPM): $(SRCS_DIR)/$($(1)_PKG_SRC)
        $(GEN_RPM) icesdk-$(1) $($(1)_VERSION) $($(1)_PKG_SRC)

$(SRCS_DIR)/$($(1)_PKG_SRC):
        $(FETCH) $($(1)_PKG_SRC) $($(1)_URL_SRC)

endef

$(foreach arg, $(PKGS), $(eval $(call DEFINE_TARGET,$(shell tr '[:lower:]' '[:upper:]' <<< $(arg)))))

all_targets: $(RPMS_DIR)/$(OSXCROSS_PKG_RPM) $(RPMS_DIR)/$(LINUXSDK_PKG_RPM) $(RPMS_DIR)/$(FEDORASDK_PKG_RPM) $(RPMS_DIR)/$(MSWCROSS_PKG_RPM) $(TARGETS)

Mă indoiesc că aş putea să explic ce am făcut acolo :slight_smile:

1 Like

Nu esti singurul.

Un limbaj mai exotic care ma intereseaza este :

/* Based on https://rosettacode.org/wiki/FizzBuzz#OCaml */
let fizzbuzz = (i) =>
  switch (i mod 3, i mod 5) {
  | (0, 0) => "FizzBuzz"
  | (0, _) => "Fizz"
  | (_, 0) => "Buzz"
  | _ => string_of_int(i)
  };

for (i in 1 to 100) {
  Js.log(fizzbuzz(i))
};

Alte limbaje exotice pe care am pus mana : Swift (care are gustul unui fruct), F# si Elm.

1 Like

Daca tot s-a adus in discutie Fortran, am acasa o carte de Bazele informaticii scrisa de Leon Livovschi. Cartea este foarte veche, fiind publicata in 1976. Am citit cateva capoitole, dar in diagonala.

Explica chiar bine conceptele de semnale digitale, calculator numeric, modul in care un computer de la acea vreme intrpeteaza acele instructiuni etc.

In 1976 datele erau stocate pe benzi magnetice. Probabil erau hdd-uri, dar erau scumpe.

Rosseta Code, la momentul actual are o lista de 682 de limbaje din diverse domenii:

  • General Purpose
  • DSL
  • etc

LE: Cateva poze cu cartea

1 Like


Asta mai era o carte smechera. Am luat-o de la anticariat cu 10 lei. Printre putinele carti traduse bine in romana.

Salutare cu ocazia primului meu mesaj pe forum. :smile:

Eric Raymond recomanda sa inveti Lisp, cel putin pentru a intelege conceptele care stau in spatele programarii. Adica poti deveni un programator mai bun doar prin faptul de ati insusi conceptele folosite in Lisp.

1 Like

Incerc sa invat printre picaturi Elixir, un limbaj functional care ruleaza pe masina virtuala Erlang.
LE: ok, dezvolt. Sunt Un programator destul de experimentat in OOP (PHP, Javascript, un pic de C++). In javascript in ultima vreme, mai ales in framework-urile moderne, gen Vue js, Ember, React, se folosesc din ce in ce mai mult niste concepte de programare functionala, gen functii arrow, clojures, method chaining, cat si la nivel de limbaj in ES6 functii specifice pentru destructurare de ex. Niste concepte foarte puternice care m-au facut sa inteleg ca programarea structurata sau OO nu este singura solutie. Elixir propune o sintaxa mai prietenoasa pe o platfoma matura si este un excelent mediu pentru cinvea care doreste sa invete concepte de programare functionala.

1 Like