Quo vadis?

Tu można porozmawiać na dowolny temat nie koniecznie związany z tematyką maszyn i CNC

strikexp
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 8
Posty: 4419
Rejestracja: 31 mar 2017, 19:47
Lokalizacja: Warszawa

Re: Quo vadis?

#11

Post napisał: strikexp » 31 paź 2022, 18:24

JacekBelof pisze:
31 paź 2022, 11:01
Uniwersalna architektura PC wymusiła natomiast stosowanie driverów, uniwersalnych bibliotek i innych zabiegów (warstwa abstrakcji), w celu umożliwienia uruchomienia oprogramowania na dowolnej konfiguracji, to stąd biorą się całe megabajty dodatkowego kodu
Niezupełnie, Ty mówisz o obsłudze poszczególnego sprzętu. A oprogramowanie można przygotować pod konkretny sprzęt używając fragmentów kodu dla konkretnego sprzętu. Wraz jest to pisane osobno dla każdego jednego sprzętu. Wiem co mówię bo miałem nieszczęście kupić procesor AMD który nie był zaimplementowany w Linux (Intele są a AMD niekoniecznie).
Także programowanie poprzez warstwę abstrakcji jest spowodowane tylko czasem jaki oszczędza. Nowa rodzina procesorów wychodzi co ile? Co 2,3,4 lata? Pomiędzy produkcją pierwszych sztuk a wprowadzeniem do sprzedaży mija pewnie z pół roku. W tym czasie wszyscy producenci kluczowego oprogramowania muszą zaimplementować nowe procesory i inny sprzęt. Gdyby babrali się w assemblerze to bylibyśmy teraz pisali z Windows 98...

Poza tym assembler wcale nie sprawia że oprogramowanie będzie wydajne. To już zależy jak jest napisane, czy wykonuje wszystko maksymalnie wydajnie, czy napieprza masę bezsensownych czynności :wink:

Dodane 4 minuty 8 sekundy:
grg12 pisze:
31 paź 2022, 13:37
Marzy mi się środowisko programistyczne które automatycznie wykrywa "optymalizacje" łamiące zasady sztuki programistycznej (oraz zdrowego rozsądku) a następnie wali winnego po pysku...
To się nazywa debug kolego, a walić to Cię wali osoba która robi code review :mrgreen:
W sumie to już sam profesjonalny edytor sra Ci na czerwono jak niepoprawnie piszesz kod. Tylko to trzeba sobie taki edytor kupić za solidne pieniądze z licencją na rok, a nie jechać na jakimś darmowym gównie :P
I taki edytor też ma niezłe pierdolnięcie jeśli chodzi o moc obliczeniową. Więc na byle kompie to nie poszalejesz. Taka ciekawostka, mój znajomy programista kupił sobie ostatnio komputer z ... 64GB RAM i bodajże 16 rdzeniami na procesorze. To już trochę przesada, ale daje obraz jak wygląda profesjonalne programowanie.



Awatar użytkownika

grg12
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 4
Posty: 1670
Rejestracja: 03 sty 2007, 14:27
Lokalizacja: Wiedeń

Re: Quo vadis?

#12

Post napisał: grg12 » 31 paź 2022, 18:51

strikexp pisze:
31 paź 2022, 18:24
W sumie to już sam profesjonalny edytor sra Ci na czerwono jak niepoprawnie piszesz kod. Tylko to trzeba sobie taki edytor kupić za solidne pieniądze z licencją na rok, a nie jechać na jakimś darmowym gównie :P
C++ to taki zabawny język w którym bardzo łatwo napisać poprawny syntaktycznie program który robi coś kompletnie bezsensownego...
Nikt też jeszcze nie wymyślił programu zdolnego wykonać polecenie "rob to co chcę żebyś robił, a nie to co ci mówię" :)

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 7
Posty: 7888
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: Quo vadis?

#13

Post napisał: tuxcnc » 31 paź 2022, 18:56

strikexp pisze:
31 paź 2022, 18:24
Taka ciekawostka, mój znajomy programista kupił sobie ostatnio komputer z ... 64GB RAM i bodajże 16 rdzeniami na procesorze. To już trochę przesada, ale daje obraz jak wygląda profesjonalne programowanie.
No i po co takie rzeczy piszesz?
Żeby było wiadomo że się nie znasz?
Takie potwory, jeśli chodzi o kompilację, są tylko i wyłącznie szybsze.
Owszem, czas się liczy i to bardzo, szczególnie jak Ci po kilku godzinach mielenia źródeł wywali błąd i odmówi dalszej pracy.
Ale nie jest prawdą że współczesne kompilatory mają takie wymagania.

Awatar użytkownika

JacekBelof
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 7
Posty: 533
Rejestracja: 02 gru 2018, 22:25
Lokalizacja: Tarnów MP
Kontakt:

Re: Quo vadis?

#14

Post napisał: JacekBelof » 31 paź 2022, 19:20

strikexp pisze:Ty mówisz o obsłudze poszczególnego sprzętu. A oprogramowanie można przygotować pod konkretny sprzęt używając fragmentów kodu dla konkretnego sprzętu.
Nie można, a przynajmniej nie na platformach PC i Android, takie rzeczy tylko (w Erze) w Apple... mają z góry określoną konfigurację, to mogą tak robić. Cała reszta świata programistów nie ma pojęcia, czy masz Intela, czy AMD, a może ARM, nie wie nawet, jaką masz rozdzielczość i proporcje ekranu, nie zna specyfikacji I/O twojego sprzętu. Owszem, można zastrzec, że działa na takiej i takiej specyfikacji, ale tyczy się to mocno profesjonalnych i bardzo specjalistycznych rozwiązań.
Seria, w moim wykonaniu, to dwie sztuki, w tym jedna w odbiciu lustrzanym. :lol:


strikexp
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 8
Posty: 4419
Rejestracja: 31 mar 2017, 19:47
Lokalizacja: Warszawa

Re: Quo vadis?

#15

Post napisał: strikexp » 31 paź 2022, 19:45

grg12 pisze:
31 paź 2022, 18:51
Nikt też jeszcze nie wymyślił programu zdolnego wykonać polecenie "rob to co chcę żebyś robił, a nie to co ci mówię" :)
Kolejny raz jesteś w błędzie, są to języki logiczne. A już bardziej łopatologicznie uczenie maszynowe.

Dodane 4 minuty 41 sekundy:
tuxcnc pisze:
31 paź 2022, 18:56
No i po co takie rzeczy piszesz?
Dla tych co nie mają o tym wiedzy.
tuxcnc pisze:
31 paź 2022, 18:56
Ale nie jest prawdą że współczesne kompilatory mają takie wymagania.
Gówno się znasz a dużo komentujesz. W jakich technologiach osiągnąłeś seniora? Możemy pogadać o konkretach a nie Twoim mędrkowaniu.

Dodane 7 minuty 10 sekundy:
JacekBelof pisze:
31 paź 2022, 19:20
Ty mówisz o obsłudze poszczególnego sprzętu. A oprogramowanie można przygotować pod konkretny sprzęt używając fragmentów kodu dla konkretnego sprzętu.
No nie można :mrgreen: Albo tworzysz oprogramowanie bezpośrednio na sprzęt i musisz znać jego specyfikację. Albo tworzysz oprogramowanie na jakąś platformę.
Platformą może być framework (spróbuj coś uruchomić bez zainstalowanego .NET framework w Windows). Może być nią przeglądarka która wykonuje Javascript (kiedyś wcale to nie było zunifikowane). A może nią być też sam system operacyjny, bo nawet głupie hello world w C działa w oparciu o system operacyjny ;)
A im głębiej w las tym częściej wyłazi sprzęt, bo nie wszystko czego chcesz użyć jest wspierane przez sprzęt.

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 7
Posty: 7888
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: Quo vadis?

#16

Post napisał: tuxcnc » 31 paź 2022, 20:06

strikexp pisze:
31 paź 2022, 19:45
Gówno się znasz a dużo komentujesz. W jakich technologiach osiągnąłeś seniora? Możemy pogadać o konkretach a nie Twoim mędrkowaniu.
Czasem kompiluję linuksowego kernela, a sam /lib/modules to teraz pół gigabajta kodu wynikowego.
Zdarza się, że równocześnie na trzech różnych komputerach z różnymi wersjami systemu i kompilatora.
Ale to pewnie za mało, żeby wiedzieć ile to trwa...
Szesnaście rdzeni to szesnaście plików źródłowych kompilowanych równocześnie, a dużo RAM-u to pisanie do buforów zamiast bezpośrednio na dysk.
Ale samemu kompilatorowi wystarczy jeden rdzeń i jeden gigabajt pamięci.
A co do tytułów naukowych czy zawodowych, to jedni dostają je za wiedzę fachową, drudzy za pieniądze, a trzeci za zrobienie laski komu trzeba...


strikexp
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 8
Posty: 4419
Rejestracja: 31 mar 2017, 19:47
Lokalizacja: Warszawa

Re: Quo vadis?

#17

Post napisał: strikexp » 31 paź 2022, 22:00

tuxcnc pisze:
31 paź 2022, 20:06
Czasem kompiluję linuksowego kernela, a sam /lib/modules to teraz pół gigabajta kodu wynikowego.
A co ma kompilowanie linuxa do tworzenia oprogramowania?
Tak na marginesie piszesz linuksowego zamiast linuxowego. To pokazuje że słabo się na tym znasz skoro nie masz nawyków z rodzimego języka wszystkich dokumentacji go dotyczących...
tuxcnc pisze:
31 paź 2022, 20:06
Zdarza się, że równocześnie na trzech różnych komputerach z różnymi wersjami systemu i kompilatora.
No i? A co to wirtualizacja wiesz? Bo chyba nie skoro zastanawiasz się po co pisałem o 16 rdzeniach.
tuxcnc pisze:
31 paź 2022, 20:06
Ale to pewnie za mało, żeby wiedzieć ile to trwa...
Najdłużej działający program który sam napisałem działał ze 4h. Analizował kilka GB logów. To że coś długo trwa znaczy tyle co nic.
Ciekawostka, na początek wymyśliłem sobie napisać program w Bash Shell Script. Szybko przerwałem jego działanie i napisałem w normalnym języku programowania. Bo by pewnie 4 dni pracował zamiast 4 godzin...
tuxcnc pisze:
31 paź 2022, 20:06
Szesnaście rdzeni to szesnaście plików źródłowych kompilowanych równocześnie, a dużo RAM-u to pisanie do buforów zamiast bezpośrednio na dysk.
Niespecjalnie, to jedynie możliwość przeprowadzania 16 operacji równolegle. Zakładając że rdzenie są 1 wątkowe. Ponieważ z tego co pamiętam to cudują z tym niesamowicie. Rdzeń co ma dwa wątki. Rdzeń co ma dwa wątki i symuluje tym 2 rdzenie. Rdzenie o ograniczonej funkcjonalności (zdaje się w i9 to jest). Niektóre elementy są współdzielone. Niespecjalnie się wgłębiałem w technikalia.
Aby przeprowadzić 16 operacji jednocześnie to trzeba najpierw mieć oprogramowanie co wspiera taką liczbę wątków. Gdy się to już wykonuje to trzeba zarządzać tym całym burdelem. Także jeden rdzeń często zajmuje się głównie tym, szczególnie jak operacje są małe i co chwilę trzeba wrzucać kolejne zadanie któremuś z rdzeni. Wysyłanie i odbieranie danych trwa. Także występują blokady gdy ukończenie jednego zadania blokuje rozpoczęcie kolejnych. Łączenie wyników poszczególnych wątków
pochłania też duże ilości RAM, bo gdzieś trzeba ten burdel składać w całość.

Coś tam wiem o równoległych operacjach. Wcale to nie działa tak jak niektórym się wydaje.
tuxcnc pisze:
31 paź 2022, 20:06
Ale samemu kompilatorowi wystarczy jeden rdzeń i jeden gigabajt pamięci.
A dysk mu nie potrzebny żeby sobie zapisywał to co się nie zmieści w RAM?
tuxcnc pisze:
31 paź 2022, 20:06
A co do tytułów naukowych czy zawodowych, to jedni dostają je za wiedzę fachową, drudzy za pieniądze, a trzeci za zrobienie laski komu trzeba...
Tytułu zawodowe z IT dostaje się za wiedzę. Są tacy co ich za darmo na staż nie chcą. A są i tacy co zarabiają 200zł za godzinę pracy na etacie. Dlatego zapytałem czy masz senior z jakiejś technologii. Bo od tego zaczyna się dyskusję jeśli chodzi o IT.

Awatar użytkownika

JacekBelof
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 7
Posty: 533
Rejestracja: 02 gru 2018, 22:25
Lokalizacja: Tarnów MP
Kontakt:

Re: Quo vadis?

#18

Post napisał: JacekBelof » 31 paź 2022, 22:19

JacekBelof pisze:
31 paź 2022, 19:20
strikexp pisze:Ty mówisz o obsłudze poszczególnego sprzętu. A oprogramowanie można przygotować pod konkretny sprzęt używając fragmentów kodu dla konkretnego sprzętu.
Nie można, a przynajmniej nie na platformach PC i Android, takie rzeczy tylko (w Erze) w Apple... mają z góry określoną konfigurację, to mogą tak robić. Cała reszta świata programistów nie ma pojęcia, czy masz Intela, czy AMD, a może ARM, nie wie nawet, jaką masz rozdzielczość i proporcje ekranu, nie zna specyfikacji I/O twojego sprzętu. Owszem, można zastrzec, że działa na takiej i takiej specyfikacji, ale tyczy się to mocno profesjonalnych i bardzo specjalistycznych rozwiązań.
strikexp pisze:Dodane 7 minuty 10 sekundy:
JacekBelof pisze: ↑31 paź 2022, 19:20
Ty mówisz o obsłudze poszczególnego sprzętu. A oprogramowanie można przygotować pod konkretny sprzęt używając fragmentów kodu dla konkretnego sprzętu.
No nie można Albo tworzysz oprogramowanie bezpośrednio na sprzęt i musisz znać jego specyfikację. Albo tworzysz oprogramowanie na jakąś platformę.
Platformą może być framework (spróbuj coś uruchomić bez zainstalowanego .NET framework w Windows). Może być nią przeglądarka która wykonuje Javascript (kiedyś wcale to nie było zunifikowane). A może nią być też sam system operacyjny, bo nawet głupie hello world w C działa w oparciu o system operacyjny
A im głębiej w las tym częściej wyłazi sprzęt, bo nie wszystko czego chcesz użyć jest wspierane przez sprzęt.


Schizofrenia czy jak?! Najpierw odpowiadam z twoim cytatem, a potem Ty odpowiadasz, wciskając mi w usta swoją wypowiedź, w zasadzie sam sobie, na dodatek niemalże identycznie co do szerszego sensu, jak ja.
Seria, w moim wykonaniu, to dwie sztuki, w tym jedna w odbiciu lustrzanym. :lol:


strikexp
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 8
Posty: 4419
Rejestracja: 31 mar 2017, 19:47
Lokalizacja: Warszawa

Re: Quo vadis?

#19

Post napisał: strikexp » 31 paź 2022, 22:34

@JacekBelof
Coś faktycznie pokręciłem przy cytowaniu i źle się odniosłem. Ale chodziło mi o to że wcale nie jest tak jak piszesz. Bo jednak programista często musi wiedzieć na co pisze, nie skompilujesz nawet prostego programu na Windows w Linuxie. A przede wszystkim należy odróżnić programowanie na sprzęt od programowania na platformę ;)

Awatar użytkownika

JacekBelof
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 7
Posty: 533
Rejestracja: 02 gru 2018, 22:25
Lokalizacja: Tarnów MP
Kontakt:

Re: Quo vadis?

#20

Post napisał: JacekBelof » 31 paź 2022, 23:36

Skompilujesz, wszystko zależy od tego jak skonfigurujesz kompilator i czy posiadasz odpowiednie biblioteki/SDK... sam na Linuxie kompiluję na Windowsa i Androida... głównie w Lazarusie, ale i w Visual Studio mi się zdarza (kiedyś, używając Embarcadero robiłem odwrotnie - z win na pingwina).
Seria, w moim wykonaniu, to dwie sztuki, w tym jedna w odbiciu lustrzanym. :lol:

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Na luzie”