Co by było gdyby nie było np. Mavena?

0

Tak jak w temacie. Co by było gdyby nie było narzędzi typu Maven?

Przyjmując, że mielibyśmy projekt o strukturze mavenowej (tak dla przykładu). To żeby uruchomić taki projekt musielibyśmy każda klaskę java kompilować "ręcznie" za pomocą javac?

Albo nie mając mavena jakby się ten projekt kompilowało w IDE?

Wiem jedno, że na bank bysmy musieli dołączać biblioteki do jakiegoś folderu w projekcie.

Czy jest mi ktoś w stanie to jakoś uzmysłowić? :)

0

Używalibyśmy ANT-a ?

2

A w C++ nie ma mavena i co, umierają ludzie? :D Mavena zresztą też kiedyś nie było i dlatego go ktoś napisal, przecież nie spadł z nieba.

0

Ale chodzi mi o to, że ok właśnie kiedyś nie było mavena (anta i innych bajerów) i moim pytaniem jest:

jakby wyglądał proces kompilowania/deploy'owania aplikacji?

0

Wszyscy siedzieli by dalej z cmake :D

0

@Krwawy Młotunio pisałeś sobie skrypt który kompilował wszystkie pliki?

0

Może używalibyśmy języków z wbudowanym zarządzaniem zależnościami i problem zarządzania zależnościami realizowałby kompilator?
Zabawki typu maven,sbt, gradle itp. są użyteczne, ale i tak są półśrodkami. Np. nie radzą sobie z "library hell" w bardzo dużym projekcie.

Często jest tak, że masz bibliotekę A, która potrzebuje biblioteki C w wersji np. 1.5, i bibliotekę B, która potrzebuje biblioteki C w niekompatybilnej wersji 2.3 i kiedy chcesz użyć obu bibliotek A i B w jednym projekcie nawet do różnych celów, to wcale nie jest łatwo z tego wybrnąć. Ludzie wymyślili różne techniki typu shading czy classloadery, ale to wszystko jest jak sięganie prawą ręką do lewego ucha stojąc na lewej ręce.

Trochę szkoda, że języki programowania poszły tak mocno w kierunku udogodnień tworzenia abstrakcji czy silnych systemów typów, ale jakoś badania ignorują problemy wynikające z tego, że kod nie jest statyczny tylko się zmienia i w efekcie ma wiele wersji. I że różne wersje mogą mieć różny poziom wzajemnej kompatybilności. Fajnie byłoby mieć narzędzie np. weryfikujące statycznie, że API nowej wersji biblioteki jest binarnie kompatybilne z wersją poprzednią. Albo kompilator, który pozwala importować nie tylko po nazwach pakietów/namespaceów, ale również po wybranych wersjach.

0

jakby wyglądał proces kompilowania/deploy'owania aplikacji?

Normalnie. Brałeś marker i zaznaczałeś brzegi kart tak by każda "biblioteka" miała inny kolor. Następnie dołączałeś te karty na końcu własnego programu. Po wgraniu programu do komputera wystarczyło tylko oddzielić karty bibliotek od kart programu.

A na serio to po prostu by ktoś napisał takie narzędzie ponieważ oprogramowanie do budowania zadań dla kompilatora jest pierwszym po napisaniu kompilatora. Nawet jeżeli są to zakreślacze do znaczenia brzegów kart perforowanych.

0

Ja w tamtym roku robiłem w projekcie w GWT w którym nie było Mavena

0

Co by było? Ktoś by napisał narzędzie do automatyzacji buildów ;)

Taki Make istnieje od 1976 roku wg. wiki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0