Wpis z mikrobloga

#programowanie a jaki język Wy polecacie do skryptów,

do pisania bezpiecznego kodu (np. operacje finansowe)?

* prosty język gdzie nie trzeba uważać aby nie popełnić błędów niskopoziomowych (w sensie bardziej jak w np Pythonie a nie jak w C++ szczególnie tym starego typu)

* wychwytywał wszelkie błędy podczas działania skryptu np. integer overflow na int (i ew. rzeczywistych typach matematycznych np dzielnie przez 0, wynik typu inf itd)

* odporny na próby zakłócenia jego działania przez specjalnie błędne dane wejściowe (chociażby zbyt długie dane, wykiwanie skryptu aby próbował zaalokować za dużo pamięci itd)

* sam skrypt (np dostarczony przez użytkownika końcowego) nie był w stanie zakłócić działania głównego programu w żaden sposób (bezpieczny sandbox)

* nie zbyt duży interpreter aby dało się go zweryfikować jego kod
* oczywiście open source i przenośny

Do używania z #cpp

Myślałem np o #lua , http://chaiscript.com/ , http://www.angelcode.com/angelscript/
  • 8
  • Odpowiedz
@RARvolt:

Bash
- bardzo łatwo popełnić błędy
- słabe wsparcie dla operacji matematycznych
- w ogóle to chyba nie jest zbytnio przewidziany jako język skryptowy integrujący się z programem go odpalającym (np mającym dostęp do wybranych jego zmiennych, oraz funkcji)

Python chyba solidnie wspiera matematykę,
a czy używałeś go w kontekście skryptu wewnątrz programu głównego jak w/w?

Python, Perl nie są raczej chyba używane do takiego skryptowania zbytnio, np do skryptowania
  • Odpowiedz
@rfree: Polecam Groovy, w którym jesteś w stanie utworzyć DSL (Domain Specific Language) działający na w sandboxie. Zarówno można pisać skrypty podobnie do pythona jak i ze statycznym typowaniem (Cpp, Java). Do tego wszystkiego masa bibliotek (JVM - Maven Repository).
  • Odpowiedz
@rfree: czytałem ostatnio (niestety nie pamiętam gdzie dokładnie - ale pewnie to była jakaś książka o Pythonie), że Python ma wspierać rozwiązania biznesowe (głównie nacisk ma pójść na współpracę z bazami danych). Teraz nie wiem tylko czy to miało być wsparcie w przyszłych wersjach języka czy też wsparcie poprzez jakieś gotowe biblioteki...

Więc może jednak ten Python? Tym bardziej, że język stosunkowo prosty, gotowe funkcje, otwarty, ze składnią, która uzależnia (dla
  • Odpowiedz
Python, Perl nie są raczej chyba używane do takiego skryptowania zbytnio, np do skryptowania gier

@rfree: Jak to nie? Python tylko i wyłącznie. Większość z tego co napisałeś łapie się pod Pythona.
  • Odpowiedz
@rfree: TR;DL: Lua ma przewagę Pythonem, ale nie jest tak wygodna. Twoje wymagania niezbyt spełniają, więc obczaj Rusta albo Solidity z Etherum.

Z doświadczenia wiem że C++ nie jest taki zły do obliczeń finansowych. Korzystając z bibliotek takich jak boost units da się sporo błędów w obliczeniach wychwycić już na poziomie kompilacji. Jakiekolwiek grube pomyłki jest wtedy dużo łatwiej wychwycić w testach. Szkoda że tak wolno działa kompilacja :-[ dlatego do
  • Odpowiedz