Język backendowy - startup

Język backendowy - startup
samoloth
  • Rejestracja:ponad 5 lat
  • Ostatnio:8 miesięcy
  • Postów:63
0

Cześć,

mam kilka pomysłów, które jak uważam mają spory potencjał. Stoję przed wyborem języka, w którym postanie API, zarówno do aplikacji internetowej oraz mobilnej. Korzystam z Linuxa, więc naturalnym wyborem byłby Python, ale mam pewne obawy co do wydajności i późniejszego utrzymania takiej aplikacji. Czy jedynymi sensownymi alternatywami są Java, C#?
PHP wolałbym sobie odpuścić. Myślałem też o NodeJS'ie, ale zdania są podzielone. Go, Rust oraz RoR wydają się mało popularne. Idealnym byłby język zwięzły, dojrzały i przyszłościowy.
Jesteście w stanie coś polecić?

S9
I wtedy wchodzi Kotlin cały na czarno
.__.
co z php nie tak?:D
samoloth
Pisałem w nim trochę. Nie jest zły, ale wierzę, że są lepsze rozwiązania :)
Schadoow
  • Rejestracja:ponad 13 lat
  • Ostatnio:3 dni
  • Postów:1067
3

Jak jesteś na etapie pomysłu to jakie ma to znaczenie ? Użyj te technologie które znasz najelepiej lub jeśli jesteś inwestorem to takich technologii dla których otrzymasz najtańszą/najlepszą ofertę.
I tak jeżeli początkowo pomysł ci ruszy przeorasz ten kod kilkukrotnie.

KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:11 dni
  • Lokalizacja:Silesia/Marki
  • Postów:5505
0

Java, Kotlin, Scala lub Eta. Innych alternatyw nie widzę

Update:
Ewentualnie jak chcesz ekstremalnie szybkiego w działaniu i ciężkiego w pisaniu to Rust


Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
edytowany 3x, ostatnio: KamilAdam
P2
  • Rejestracja:ponad 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:84
1

Napisz najpierw w tym w czym jesteś najlepszy, skończ projekt a potem sprawdź co w nim byłoby lepsze gdybyś użył innego języka i ewentualnie zrobił jakąś funkcjonalność w innym języku wystawiając api do niego

elwis
  • Rejestracja:ponad 18 lat
  • Ostatnio:3 dni
2

Ja bym wolał Lispa jakiegoś. :) Jak dla mnie Common Lisp się dobrze sprawdza, ewentualnie Clojure na JVM.
Oczywiście nie próbuję Cię przekonać do Lispa, bo pewnie jeszcze nie jesteś na tym etapie. Jedyne zagrożenie jakie widzę w pythonie to może być skalowalność w dłuższej perspektywie. Z drugiej strony, jeśli zamierzasz pójsć w mikroserwisy to czemu nie.


edytowany 1x, ostatnio: elwis
vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
0

Tak jak napisales: Python / Flask.
Ew. jesli chcesz jeszcze bardziej przyoszczedzic to node.js

Charles_Ray
  • Rejestracja:około 17 lat
  • Ostatnio:około godziny
  • Postów:1874
5

Na tym etapie nie ma to znaczenia - wybierz ten język, który znasz najlepiej. Życzę jak najlepiej, ale na 90% projekt zakończy się na pomyśle.


”Engineering is easy. People are hard.” Bill Coughran
DP
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:159
0

Proponuję język Luna.

KamilAdam
Swoją drogą Luna jest napisana w Haskellu
Idzi
Mają ciekawie zrobioną stronę www.
Idzi
  • Rejestracja:ponad 6 lat
  • Ostatnio:2 miesiące
  • Lokalizacja:Nowa Sól
  • Postów:11
0

Proponuję Dart.

KamilAdam
a można w nim pisać backend? bo myślałem że Dart jest tylko do frontu i mobilnych, a do backendu Google ma GoLang
Idzi
Jasne, że można pisać backend. Ten język został zaprojektowany jako backendowy, niejako w odpowiedzi na Node.js. Z czasem zmienił sie akcent i został zaadoptowany do frontendu.
samoloth
  • Rejestracja:ponad 5 lat
  • Ostatnio:8 miesięcy
  • Postów:63
0

Aplikacje powstaną na pewno, natomiast to, czy się przyjmą jest inną kwestią. Niemniej nie chciałbym stosować półśrodków, tylko wybrać przyszłościowe technologie, które w przypadku gdy aplikacje nie wypalą, pozwolą na znalezienie pracy bez większych problemów.
Dziękuję za wszystkie sugestie. Szczególnie zainteresował mnie Rust oraz ETA, w najbliższych dniach pogłębię nieco wiedzę na ich temat.

Charles_Ray
Hehe, to pisz od razu, że celem jest poznanie przyszłościowych technologii :)
OtoKamil
  • Rejestracja:około 10 lat
  • Ostatnio:około rok
  • Postów:143
4

Pisz w tym co znasz żeby jak najszybciej skończyć projekt (nawet jeśli to PHP). Jeśli zacznie ograniczać Cię technologia (wydajność, rozwiązania) albo zauważysz, że są jakieś miejsca do których inny język nadaje się lepiej to wtedy widzę sens przepisywania tego na coś czego musisz się nauczyć

edytowany 3x, ostatnio: OtoKamil
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:około 2 godziny
  • Postów:8413
1

Niemniej nie chciałbym stosować półśrodków, tylko wybrać przyszłościowe technologie, które w przypadku gdy aplikacje nie wypalą, pozwolą na znalezienie pracy bez większych problemów.

Ale znasz już jakiś język backendowy? Jeśli tak, to najlepiej robić w tym, co się zna, nawet jeśli to język mało sexy (jeśli Zuckerberg napisał Facebooka w PHP i odniósł sukces, to wszystko jest możliwe), ale jeśli nie znasz języka backendowego, to coś słabo to widzę, jeśli chodzi o realizację twoich pomysłów. Oczywiście nic nie jest niemożliwe, ale mimo wszystko bez znajomości technologii to zanim dojdziesz do poziomu umiejętności, które pozwolą ci zrealizować swój pomysł, pewnie minie trochę czasu (chociaż to zależy jeszcze jaki to pomysł. A pewnie od tego będzie zależał wybór technologii).

No ale jak już coś znasz, to możesz napisać w tym, co umiesz, sprawdzić, czy w ogóle to ma sens i najwyżej się przepisze.

mam kilka pomysłów, które jak uważam mają spory potencjał.

Uważasz, czy masz do tego konkretne podstawy? Np. jeśli ci się coś wymyśliło "bo tak", to wcale nie musi oznaczać, że to dobry pomysł biznesowy. Ale jeśli zauważyłeś niezaspokojoną potrzebę na rynku albo ułomności istniejących rozwiązań, to co innego.


edytowany 2x, ostatnio: LukeJL
Idzi
  • Rejestracja:ponad 6 lat
  • Ostatnio:2 miesiące
  • Lokalizacja:Nowa Sól
  • Postów:11
0
samoloth napisał(a):

Szczególnie zainteresował mnie Rust oraz ETA, w najbliższych dniach pogłębię nieco wiedzę na ich temat.

No to długie miesiące nauki przed Tobą, jeśli wybierzesz Rust, a w przypadku ETA, całkowite przestawienie się na programowanie funkcyjne.
Co też niekoniecznie będzie proste. Dosyć ryzkowna teza, że nie wiadomo czy Dart się przyjmie, a ETA tak.

cerrato
Moderator Kariera
  • Rejestracja:około 7 lat
  • Ostatnio:dzień
  • Lokalizacja:Poznań
  • Postów:8775
1

Tak naprawdę to najsensowniejsza porada to post @OtoKamil. Na razie nie zastanawiaj się nad takimi rzeczami, bo i tak projekt się 20 razy zdąży zmienić. Pisz w tym, co znasz, albo czego da się najłatwiej nauczyć (PHP jest dość prosty i ma niską krzywą wejścia). A z czasem zauważysz, czego Ci brakuje, ludzie zaczną z tego realnie korzystać, zaczniesz na tym zarabiać i/albo znajdziesz inwestora - wtedy to będzie czas na takie decyzje, na razie skup się na działającym prototypie/wersji, którą da się puścić w świat.


KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:11 dni
  • Lokalizacja:Silesia/Marki
  • Postów:5505
1
Idzi napisał(a):
samoloth napisał(a):

Szczególnie zainteresował mnie Rust oraz ETA, w najbliższych dniach pogłębię nieco wiedzę na ich temat.

No to długie miesiące nauki przed Tobą, jeśli wybierzesz Rust, a w przypadku ETA, całkowite przestawienie się na programowanie funkcyjne.
Co też niekoniecznie będzie proste. Dosyć ryzkowna teza, że nie wiadomo czy Dart się przyjmie, a ETA tak.

IHMO przyszłość Darta dla backendu wydaje się jeszcze bardziej niepewna, ponieważ GoLang odniósł sukces. A wydaje mi się wątpliwe, żeby Google chciało utrzymywać dwa różne języki do pisania backendu.


Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
Idzi
To też prawda. Chociaż, z tego co mi się wydaje, Go, miał być głównie językiem systemowym, zastępującym C.
samoloth
  • Rejestracja:ponad 5 lat
  • Ostatnio:8 miesięcy
  • Postów:63
1

Znam Laravela i mógłbym w nim napisać prototypową wersję, ale często mam problem z zależnościami i trochę mi się szczerze mówiąc przejadł, stąd to zainteresowanie czymś innym.

Idzi
Mógłbyś skrobnąć zdanie, z czym konkretnie masz problem w Laravel?
samoloth
Niekoniecznie z samym Laravelem, bardziej PHP'em i jego zależnościami. Problemy przy dogrywaniu jakiś bibliotek, częste warningi. Nie były to problemy nie do rozwiązania, natomiast myślę że można się obejść bez nich.
Idzi
Composer rozwiązuje większość problemów bez trudu.
cerrato
Moderator Kariera
  • Rejestracja:około 7 lat
  • Ostatnio:dzień
  • Lokalizacja:Poznań
  • Postów:8775
1

Lavarel [...] trochę mi się szczerze mówiąc przejadł

Ale Ty chcesz ten projekt stworzyć i rozwinąć dla kasy, czy dla przyjemności? :P
Jeśli chcesz z tego ciągnąc dolary, to pisz w tym, co ogarniasz. Zagryź zęby i pisz. Nieważne w czym, ważne żeby działało i zaczęło na siebie zarabiać jak najszybciej.


edytowany 2x, ostatnio: cerrato
samoloth
  • Rejestracja:ponad 5 lat
  • Ostatnio:8 miesięcy
  • Postów:63
1

Dla zysku, ale uważam, że jeśli coś wykonujesz z przyjemnością, to wychodzi lepiej :)

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)