Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Znacie Elbox Laboratorium Informatyki? Poznajcie język G!

Niektórzy z Was mogą pamiętać zajęcia Informatyki w szkole podstawowej lub gimnazjum, na których uczyło się obsługi języka Logo w programach Logomocja lub Logo Komeniusz. Sterowało się tak zwanym żółwiem, który wykonywał nasze komendy i rysował na ekranie różne obiekty - zazwyczaj to co chcieliśmy ;) Było to jedno z pierwszych środowisk programistycznych, jakie poznawało się w szkole.

Kolejnym programem powiązanym z programowaniem, a którego również poznawało się w szkole, był Elbox Laboratorium Informatyki. Służył on jako pomoc naukowa w szkołach przy nauce Algorytmów i obsługi komputera. W programie mieliśmy dostępnych kilkanaście różnych bloczków, które spełniały różne role. Mieliśmy bloczki początku i końca algorytmu, linie łączące bloczki, bloczki wykonywania obliczeń lub funkcji, bloczki sprawdzania warunku, bloczki od wprowadzania i wyprowadzania danych (i lokalnych i globalnych). ELI oferował nam nie tylko tworzenie prostych algorytmów, ale również budowę programów z wykorzystaniem wbudowanego żółwia, zewnętrznych interfejsów (jak np. pomiar natężenia światła), tzw. "taśm", czyli prostych rejestrów danych czy tablic przechowujących dane. Te wszystkie mechanizmy pozwalały nam na zbudowanie bardzo rozbudowanych algorytmów, które mogły wykonać praktycznie dowolne zadanie. Sterowanie sygnalizacją świetlną, rysowanie grafik za pomocą żółwia, tworzenie wykresów i tabel czy stworzenie gry logicznej - to wszystko było możliwe do zrobienia za pomocą ELI. A przy okazji, można było się bawić i uczyć.

Ale to, co chcę Wam dzisiaj przedstawić, to język G. Jest to graficzny język programowania wykorzystywany w oprogramowaniu LabVIEW stworzony przez firmę National Instruments (w skrócie NI). NI jest producentem urządzeń, kart pomiarowych i systemów akwizycji danych, które stosuje się właśnie do kontrolowania różnych urządzeń, zbierania danych z tych urządzeń i systemów oraz akwizycji zebranych danych i ich analizy. Flagowym produktem firmy jest oczywiście oprogramowanie LabVIEW, a drugim z kolei (również tak samo ciekawym) jest LabWindows/CVI, którego przedstawię innym razem.

Czym jest LabVIEW?

Z Wikipedii możemy dowiedzieć się, że LabVIEW (akronim nazwy ang. Laboratory Virtual Instrument Engineering Workbench) powstało w 1986 roku jako rozwiązanie dla wszystkich osób, które nie były programistami, a potrzebowały programu do obsługi ich problemu. Dzięki temu, każdy naukowca, inżynier czy jakikolwiek inny badacz, mógł stworzyć potrzebną sobie aplikację, która np. zbierała dane z jego urządzeń, analizowała te dane i wyświetlała np. w postaci wykresów. Takie aplikacje oczywiście mogły być interaktywne, więc nie było problemu, by w określonych warunkach aplikacja podejmowała jakieś decyzje np. w przypadku przekroczenia dozwolonej temperatury mogła wyłączyć urządzenie lub włączyć dodatkowe wentylatory.

Z naszej internetowej encyklopedii dowiemy się również, że LabVIEW jest często wykorzystywane w ośrodkach badawczych takich jak CERN czy NASA i wszędzie tam, gdzie wykonuje się jakieś pomiary i analizuje się zebrane dane.

Pierwsza wersja aplikacji, wydana w 1986 roku, była dostępna jedynie na komputery Macintosh, dopiero 6 lat później pojawiły się na rynku wersje dla systemów Sun oraz Windows. Od następnego roku środowisko było już rozwijane równocześnie dla wszystkich platform, a obecnie dostępne jest na systemy Windows, Unix, Linux oraz Mac OS i to w wersjach 32 i 64 bitowych.

W języku graficznym G do tworzenia programów wykorzystuje się różne ikonki, które symbolizują realizowane przez nie funkcje. Takie bloczki następnie łączymy ze sobą "nitkami", które determinują przepływ danych pomiędzy wszystkimi obiektami jakie umieścimy na planszy.

Interfejs graficzny programu tworzymy poprzez umieszczanie na pustej planszy, różnych elementów graficznych, jak np. suwaki, pola tekstowe, wykresy, gałki, pokrętła, przyciski, diody LED i wiele wiele innych. Środowisko posiada bardzo rozbudowaną bazę elementów interfejsu graficznego. LabVIEW udostępnia również ponad 400 różnych funkcji matematycznych, funkcje do przedstawiania danych. itd.

Hello World

Na początek, jak wygląda interfejs graficzny środowiska. Program składa się z dwóch okien, pierwsze, o nazwie "Front Panel", jest oknem, w którym tworzymy interfejs graficzny naszego programu. Możemy tam umieszczać wszelkiego rodzaju kontrolki, wykresy, grafiki, miejsca na wprowadzanie danych, jak i miejsca z wynikami z programu. To jedno okno pozwala nam zdefiniować cały interfejs aplikacji. Drugim oknem środowiska jest "Block Diagram", czyli nasz "kod źródłowy" aplikacji. Tam pojawiają się nam wszystkie elementy naszego interfejsu w postaci ikonek o podobnej wielkości, dzięki czemu łatwo możemy je łączyć z innymi elementami aplikacji, np. pole tekstowe, w którym będziemy wprowadzać dane, możemy połączyć z funkcją konwertującą tekst na liczbę, która następnie przekaże wynik do jakiejś funkcji matematycznej lub np. do elementu graficznego przedstawiającego zbiornik. W ten sposób tworzymy kod programu, który ma się wykonać po każdym uruchomieniu.

Napisanie najprostszej wersji "Hello World", to tak naprawdę umieszczenie jednego obiektu w oknie Front Panel, a w oknie Block Diagram, dodanie stałej, która przekaże wartość do wcześniej dodanego obiektu.

Chciałem Wam również pokazać trochę bardziej rozbudowaną wersję Hello World, w której napis wyświetlany jest poprzez migające diody LED. Niestety blog nie dopuszcza gifów, dlatego pod tym linkiem możecie zobaczyć jak to działa (niestety, ale program w darmowej wersji nagrywał z małą ilością FPS). Natomiast "kod" odpowiedzialny za działanie tego programu przedstawiam już w grafice poniżej.

Jak widać na załączonym obrazku, kod nie jest wcale jakiś skomplikowany, ale już tłumaczę, co tam mamy i co to wszystko robi.
Szara ramka, która znajduje się w około wszystkich elementów i która posiada w prawym dolnym roku strzałkę, to pętla while. Wszystko co znajdzie się w środku tej ramki, znajduje się w pętli while. Po prawej stronie tej ramki mamy przycisk "stop", który jest podłączony do małego kwadracika z czerwoną kropką w środku. Ta ikonka z czerwoną kropką to warunek pętli while.
Do wyboru mamy dostępne dwa warunki pętli while:

  • czerwona kropka - czyli "stop if true" - jeżeli do czerwonej kropki podamy wartość true, to pętla zostanie przerwana.
  • zielona zaokrąglona strzałeczka - czyli "continue if true" - jeżeli do ikonki przestaniemy podawać wartość true, to pętla zostanie przerwana.

Natomiast po lewej stronie mamy kilka niebieskich elementów, jakiś kwadracik i trójkąt. Niebieskie elementy to stałe, a ich kolor oznacza typ zmiennej. Niebieski oznacza liczby całkowite, pomarańczowy oznacza liczby zmiennoprzecinkowe, różowy oznacza ciągi tekstowe, a zielony wartości logiczne. Występują jeszcze inne kolory odpowiadające innym typom, ale ich na razie nie będę opisywał.

I tak wracając do tematu, po lewej stronie mamy trzy wartości całkowite, z czego jedna jest własnością pętli while. Tym elementem należącym do pętli jest zmienna "i", która przy każdym przebiegu pętli jest zwiększana o 1. Wartości "1" i "2" dodałem ręcznie, tak samo, jak kwadrat i trójkąt, które są funkcjami. Kwadrat to funkcja dzielenia z resztą. Po lewej stronie bloku znajdują się wejścia, pod które podłączona jest zmienna "i" i wartość "2", a po prawej stronie znajdują się dwa wyjścia funkcji, przy czym tylko jedno jest w tej chwili podłączone. Literka R znajdująca się przy pierwszym wyjściu oznacza resztę z dzielenia, a IQ oznacza wynik dzielenia. W moim programie chciałem, by diody naprzemiennie zapalały i gasiły się, więc potrzebuję tylko reszty z dzielenia przez 2, która daje wynik 0 lub 1. Następnie porównuję tę resztę z dzielenia z liczbą 1, co daje mi wynik true lub false.

Kolejnym elementem na planszy jest ramka w kształcie filmu do aparatu fotograficznego, która nazywa się "Flat Sequence Structure". Element ten pozwala nam zbudować strukturę sekwencji do wykonania przez program, najpierw wykonuje się pierwsza część "filmu" z lewej strony i później kolejne bloki, aż do ostatniego. W każdym z tych bloków widzimy ikonki podpisane jako Boolean. Są to nasze diody LED umieczone na Front Panelu. Ich nazwa pochodzi od typu zmiennej jaka je obsługuje, a z racji, że światło może być tylko zapalone lub zgaszone, to typem obsługującym ten element jest typ logiczny, czyli Boolean.

Jak widzimy na rysunku, jeden sygnał może być źródłem dla wielu elementów i nie ma z tym żadnych problemów. Na zrzucie pozostał jeszcze jeden element w 5 sztukach. Time Delay, to jak sama nazwa mówi, odstęp czasowy. Blok ten wymusza odczekanie zadanego czasu zanim przejdziemy do kolejnego bloku. Dzięki temu mogłem zrealizować poszczególne uruchamianie literek w programie.

Czytelność kodu

Czas pokazać, co może pójść nie tak w tym środowisku. Jednym z problemów języka G jest zachowanie czytelności kodu. Jeżeli nie będziemy dbali o naszą aplikację od samego początku, to możemy źle na tym skończyć. Programy lubią być modyfikowane, ulepszane czy rozbudowywane. Dokładanie kolejnych funkcji do już istniejącego bałaganu, nie spowoduje nagle, że kod stanie się czytelniejszy. I niestety wszystkie osoby tworzące programy w LabVIEW muszą być świadome tego, że im bardziej będą dbali o czytelność swojego kodu, tym lepiej będzie się go edytowało w przyszłości. A już na pewno ułatwi to zadanie nowym osobom, które nie są wtajemniczone w projekt. W sumie te zdania tyczą się każdego języka, tak jak się mówi, by nazwy zmiennych były logicznymi nazwami, które oznaczają coś sensownego, by kod był odpowiednio wyrównany i wcięty itp., tak w G jest to jeszcze bardziej istotne. No bo kto chciałby edytować program z kodem jak z rysunku poniżej?

A uwierzcie mi, takich aplikacji jest dużo więcej:

Na szczęście, jest na to rozwiązanie. LabVIEW umożliwia wykorzystywanie wcześniej stworzonych aplikacji jako podprogramów. Dzięki temu możemy jedną dużą aplikację podzielić na kilka mniejszych i pracować nad nimi osobno. Następnie w głównym projekcie włączamy wszystkie podprogramy i łączymy je w jedną całość. Takie podprogramy zyskują ikonkę podobną do wszystkich elementów, posiada ona wejścia i wyjścia i można ją łączyć z innymi blokami do współpracy.

Podsumowanie

Znów chciałem napisać krótki wstęp do bardzo ciekawego języka, ale chyba nie da się tego zrobić w postaci kilku krótkich akapitów z kilkoma zdjęciami i tyle. Język jest bardzo bogaty, umożliwia tworzenie wielu ciekawych aplikacji pomiarowych i jest bardzo przydatny właśnie w środowiskach naukowych i przemysłowych przy zbieraniu danych i ich analizie. Z chęcią przedstawię Wam ten język w kolejnych wpisach bardziej szczegółowo, ale już może bardziej na zasadzie kursu niżeli takiego wpisu jak ten. Oczywiście ponownie jestem świadom tego, że wpis nie jest napisany jakimś super językiem do czytania, tego niestety muszę się dopiero nauczyć. Mam jednak nadzieję, że wpis ten zainteresuje chociaż kilka osób, a może ktoś zna firmę NI i korzysta z ich produktów i oprogramowania? Czekam na wszelkie komentarze (te negatywne również ;))

PS. A poniżej dwa przykłady, ładnych graficznie aplikacji, których zadaniem jest sterowanie kilkoma urządzeniami, zbieraniem danych z tych urządzeń i prezentacją ich w różny sposób.

 

sprzęt oprogramowanie programowanie

Komentarze

0 nowych
DjLeo MODERATOR BLOGA  17 #1 22.06.2015 09:35

Dobry wpis ;)

Kużdo   8 #2 22.06.2015 09:44

@DjLeo: Dzięki wielkie :) Staram się przedstawiać coś ciekawego :)

LonngerM   11 #3 22.06.2015 10:17

Do ulubionych:) naprawdę fajna rzecz:) A wpis jeszcze lepszy, bo o tym nic nie wiedziałem, a wszystko fajnie wyjaśnione i zobrazowane:)

  #4 22.06.2015 10:24

Znam dużo łatwiejszy język http://taktentus.herokuapp.com/
wystarczą przypisania
;-) nauczysz się w 10 sekund.
a := 1

nintyfan   10 #5 22.06.2015 10:31

Języki graficzne są świetne. Sam się zastanawiam nad stworzeniem programu graficznego(rozszerzony Blender) do tworzenia gier 3D. Tworzymy scenę, dodajemy obiekty, wybieramy obiekty, wybieramy animowany obiekt, tworzymy animację i wybieramy, co tak naprawdę ma się stać(czyli spośród zmienionych wielkości względnych wybieramy te, które naprawdę mają się zmienić). Oczywiście - część AI nadal trzeba będzie zakodować.

Berion   13 #6 22.06.2015 10:35

Czy to "IDE" kompiluje program do natywnego kodu dla danej platformy czy jest tylko platformą do uruchamiania napisanych w nim skryptów?

Rower1985   6 #7 22.06.2015 10:41

Pamiętam te ELI - robiło się nawet na tym proste gierki. Fajne czasy.

kowgli   6 #8 22.06.2015 10:52

Nie wiem jak u was, ale dla mnie opis tekstowy (powiedzmy w meta-kodzie) algorytmu jest o wiele bardziej czytelny niż graficzny. Podobnie wolę wypunktowane lub rozpisane w tabelce wymagania, niż wszelkiego rodzaju diagramy.
Może wynika to z przyzwyczajeń, bardziej chyba jednak z tego, że tekst pozwala się bardziej skupić na danym punkcie, a diagram nieco przytłacza.

Graficzna reprezentacja oczywiście sprawdza się świetnie w dokumentowaniu wszelkiego rodzaju zależności, ale np. podany na górze algorytm euklidesa chyba jednak jest bardziej czytelny napisany po prostu tekstem.

Też tak macie?

O4i   11 #9 22.06.2015 10:53

Eli2 jeeeee!

Kużdo   8 #10 22.06.2015 10:59

@LonngerM: Dzięki za miłe słowa :) Postaram się nie zawieść i publikować kolejne wpisy ;)

@nintyfan: Czyli coś jak stary Game Maker Studio (czy jakoś tak, pamiętam, że łatwo można było stworzyć gry 2D w tym programie), a obecne Unity? ;>

@Berion: Tak, środowisko umożliwia kompilację całego projektu do pliku .exe, który można uruchomić na komputerze ze środowiskiem startowym lub możemy skompilować program do instalatora, który zawiera w sobie również instalator środowiska startowego.

  #11 22.06.2015 11:06

Bardzo ciekawe. Są jeszcze jakieś inne częste zastosowania tego języka nie w strefie naukowej, czy produkcyjnej?

Kużdo   8 #12 22.06.2015 11:11

@kowgli: Osobiście o wiele bardziej cenię sobie algorytmy rozpisane za pomocą schematów blokowych. Szybko i łatwo można dojść do tego co i gdzie się wykonuje, co i jak musimy zaprogramować i jak wszystko spiąć. Trzeba jednak pamiętać, że aby taki schemat był użyteczny to musi być on dobrze zrobiony. Jak będzie źle narysowany, to i autor po dłuższej przerwie może mieć problemy z rozczytaniem schematu. To tak samo jak z kodem źródłowym. Mam kolegę, który zmienne nazywał "zmienna1", "zmienna2", "zmienna3". W czasie tworzenia programu od zera będzie pamiętał co każda przechowuje, ale już po tygodniu nie będzie w stanie stwierdzić co jest czym...

Zaletą schematów jest jeszcze to, że nie muszą być one skomplikowane. Patrząc na kod możemy trafić na funkcję, której nie znamy, np. jakąś funkcję stworzoną przez autora programu. Trzeba zaglądać do jej ciała, żeby dowiedzieć się co robi, co nam zwraca itp. Na schemacie wszystkie bloczki mają stałe oznaczenia, wiemy gdzie są warunki, gdzie działania, gdzie wprowadzanie/wyprowadzanie danych lub gdzie zaczyna się podprogram lub funkcja i często bez znania jej treści idzie dojść co ona robi, bo już po samym schemacie można to wyczytać.

Przynajmniej ja tak mam ;) Każdy ma swoje ulubione rzeczy i każdy lubi robić tak jak mu łatwiej i przyjemniej :) Nie ma złej metody :P

Autor edytował komentarz.
juv   6 #13 22.06.2015 11:14

@Berion: Tak, umożliwia ale nie każda wersja. Podstawowa licencja nie pozwala na tworzenie binarek. Tak przynajmniej było jeszcze 2 lata temu.

McDracullo   16 #14 22.06.2015 11:32

O fuj... język G i LabView... czyli czym męczono mnie podczas studiów i próbowano wmówić że "Simulink ssie". :) Wolę Matlaba/Simulinka z RTWT oraz prostą kompilacją na platformy wbudowane.

Sam wpis spoko - jednak mnie przez program studiów chyba nic nie przekona do LabView. Wolę Matalaba/Simulinka (też graficznie, a jakoś tak przyjemniej ;) ).

Kużdo   8 #15 22.06.2015 11:41

@Sorento (niezalogowany): Możemy w tym stworzyć jakiś komunikator czy inne programy użytkowe (chociaż ograniczeń jest sporo, bo wiadomo, że nie jest to język ogólnego przeznaczenia), ale wątpię by było to stosowane gdzieś indziej. Ważną kwestią, o której zapomniałem wspomnieć, jest to, że jest to płatne środowisko.

Kużdo   8 #16 22.06.2015 11:49

@McDracullo: Z tego co wyczytałem, to Simulink służy do symulacji, więc ma całkowicie inne zastosowanie niż LabVIEW. Powiedziałbym wręcz, że tych dwóch produktów nie ma co porównywać... LabVIEW wykorzystywany jest do tworzenia aplikacji, które mają komunikować się z urządzeniami (miernikami, czujnikami, kartami rozszerzeń z jeszcze innymi urządzeniami), zbierać z nich dane, analizować je i przetwarzać, a czasami nawet podejmować decyzje na podstawie zebranych danych. Przykładowo można stworzyć aplikację, która będzie nadzorowała pracę wentylatorów w jakiejś fabryce. Na całej hali niech będzie rozlokowanych 5 czujników temperatury i 5 wentylatorów. Jeżeli jakiś czujnik przekroczy jakąś temperaturę, to aplikacja ma włączyć dany wentylator, jeżeli podskoczy jeszcze bardziej, to ma przełączyć na wyższy bieg, jak zmaleje, to wyłącza. A w kryzysowej sytuacji ma włączyć alarm. Dzięki LabVIEW taką aplikację zbudujemy w pół godziny z podłączeniem sprzętu. I w dodatku będzie nam graficznie prezentowała wysokość temperatur na każdym czujniku, prędkość obrotów wentylatorów itp.

Druedain   13 #17 22.06.2015 12:00

Czas pokazać, co może pójść nie tak w tym środowisku. Jednym z problemów języka G jest zachowanie czytelności kodu. Jeżeli nie będziemy dbali o naszą aplikację od samego początku, to możemy źle na tym skończyć. Programy lubią być modyfikowane, ulepszane czy rozbudowywane. Dokładanie kolejnych funkcji do już istniejącego bałaganu, nie spowoduje nagle, że kod stanie się czytelniejszy.


W sumie jest to uniwersalna prawda. Nie chyba języka wolnego od tego typu problemów ;)

Autor edytował komentarz.
nintyfan   10 #18 22.06.2015 12:30

@Kużdo: Pobawię się Unity i sprawdzę, czy spełnia moje wymagania.

slepcu   6 #19 22.06.2015 12:49

Korzystałem z LabView na zajęciach. Fajne, ale faktycznie przy dużej liczbie elementów staje się mało czytelne. Jest jednak możliwość zagnieżdżania obiektów - tworząc grupy. Można dodatkowo pisać fragmenty kodu w .c i .m (matlab);

Kodów wizualnych jest więcej: w C# jest Workflow Fundation, dla Javy też są podobne graficzne frameworki.

McDracullo   16 #20 22.06.2015 13:00

@Kużdo: Dlatego wspomniałem o RTWT oraz RTW - zapewniają działanie zbudowanej "aplikacji" (a raczej schematu) w czasie rzeczywistym (podobno RTW dostaje się pod jądro systemu - czy to prawda - nie wiem, nigdy nie sprawdzałem). Nieraz przeprowadzałem zarówno symulacje z wykorzystaniem Simulinka jak i uruchamiałem aplikacje do działa w trybie czasu rzeczywistego z wykorzystaniem kart akwizycji danych ;) Naprawdę działa to świetnie i łatwiej od Labview (przynajmniej dla mnie). Więcej miedzy innymi tutaj:
http://fr.mathworks.com/products/simulink-desktop-real-time/

Dodatkowo możesz wygenerować kod dla zbudowanego schematu dla wybranej przez siebie platformy (np. wbudowanej) i uruchomić w ten sposób (najczęściej generujesz w C, ja wygenerowany kod uruchmiałem na Atmedze oraz QNX na x86/ARM).

Kużdo   8 #21 22.06.2015 13:25

@McDracullo: O widzisz, dzięki za informacje :) No, będę musiał się tym zainteresować, jak będę miał chwilę czasu :)

En_der   9 #22 22.06.2015 17:58

No panie@Kużdo- wpis pierwsza klasa, czekam na ciąg dalszy :)

Autor edytował komentarz.
  #23 22.06.2015 19:35

kiepski wpis, właściwie to nic w nim nie ma po za papka reklamową

dragonn   10 #24 22.06.2015 20:11

Miałem styczność na studiach z tym programem - dodatkowy kurs ale powiem szczerze nie przekonał mnie w ogóle, niby ma duże możliwości ale jak ktoś na co dzień siedzi w klasycznych językach programowania to czasem ciężko przestawić myślenie na tego typu programy, często zdarzało mi się że trafiałem na jakiś problem który w takim programie zajmował masę "kodu" a w klasycznym języku było by to parę linijek.

czarnylas   13 #25 22.06.2015 21:19

Eli to był pierwszy program którym mogłem pobawić się na zajęciach programowania i jeden z ulubionych. Czekam na kolejne wpisy dotyczące LabVIEW

marcin1510   7 #26 22.06.2015 23:10

ELI nadal góruje w niektórych uczelniach na przedmiocie Algorytmy i struktury danych lub pochodnym. Niestety nie jest już taki nowy i wiele rzeczy tam nie da się zrobić.
Niestety nie widziałem podobnego, posiadającego zbliżone możliwości i umożliwiającego tworzenie algorytmów bez potrzeby uczenia się języka programowania (wszystko ustawiamy w bloczkach), oprócz instrukcji podstawiania, dzielenia i kilku innych.

awangardowy   7 #27 23.06.2015 01:31

wizualne programowanie dla nieprogramistów?

jest odpowiedź tylko jedna: modelowanie (niektórzy mówią też na to projektowanie)

a odpowiedź podrzędna: np. UML

jak ktoś chce realnie nauczyć się programowania i zacząć od strony nie-matematyczno-kodowej, to polecam UML.
Klasycznie, konserwatywnie i pewnie. :)

  #28 23.06.2015 09:58

wiesz co, przestań juz pisać jesli ma to wyglądac w ten sposób

  #29 23.06.2015 10:39

Bardzo ciekawy artykul. Dzieki.

Kpc21   9 #30 23.06.2015 14:21

ELI... To chyba jeszcze 16-bitowa aplikacja była, w każdym razie interfejs użytkownika miało w stylu Windowsa 3.x.

A co do LabView - na studiach było nam pokazywane, nawet jedne zajęcia na laborkach z tego mieliśmy, ale generalnie jak dotychczas nikt nas nie zmuszał by tego używać.

Lubieerror   8 #31 23.06.2015 23:46

@w4t34 (niezalogowany): On przynajmniej się podpisał pod swoim tekstem :)

Lubieerror   8 #32 23.06.2015 23:55

@awangardowy: Znam to podejście. Mój znajomy: "wielki" i "wszechwiedzący" programista też ma takie podejście (ale oczywiście zachwalać VS, że ma mechanizm drag&drop to już oczywiście może).
Natomiast już mój starszy znajomy, który potrafi zrobić w różnych językach (!pisanych!) rzeczy, które tamtemu by się nie śniły... też bardzo często woli, a nawet jest "zmuszony" (bo jest to po prostu o wiele korzystniejsze i bardziej opłacalne) do pisania w językach drabinkowych etc. Objaśnił mi też, że to nie jest takie "dziecinne" jak wszystkim "pr0gramistąm" (nie, nie chodzi mi o Ciebie, bywają gorsi ;) ) się wydaje :)

awangardowy   7 #33 24.06.2015 00:51

@Lubieerror:

Natomiast u mnie wszyscy senior developerzy (a.k.a. 7000 zł + na rękę) z otoczenia używają dobrego i porządnego modelowania (UML). Mów mi co chcesz, ale ja widzę co działa i czego używają ludzie pracujący w ciężkich projektach, a co jest amatorszczyzną. Co do modelowania, to nie do każdego języka się nadaje - za to jest świetne do obiektowych (rodziny C, java, czasami PHP). Ja jednak jestem zwolennikiem modelowania. Mniej sformalizowane modelowanie, to np. mind mapping (mapy myśli), albo chociażby coś takiego jak MS Visio, czy nawet najzwyklejsza tablica i pisak do mazania. Chodzi o to, żeby w wizualnym modelu logicznie i przejrzyście była cała struktura ujęta, a dopiero opierając się na modelu tworzy się kod. No i lepiej się pracuje grupowo z ludźmi, którzy opierają się na dobrym modelu, niż swoim widzimisię.
Co do LabView to brak poglądu (nie znam), ale chyba szkoda czasu; lepiej godzina nauki z UML niż godzina z LabView.

Lubieerror   8 #34 24.06.2015 17:41

@awangardowy: Zależy też od zastosowań i znajomości. Niemniej jednak mimo wszystko prosiłbym o szanowanie ludzi, którzy w tym tworzą jako programistów (może trochę innego rodzaju, ale działa? działa ;) / cel jest jeden (niepotrzebne skreślić)) :)
Ps.
Tak z ciekawości, to nad czym pracują (ogólnie)?

Kużdo   8 #35 25.06.2015 08:43

@dragonn: No to nie jest idealny język i nie jest językiem ogólnego przeznaczenia, więc niektóre rzeczy faktycznie można robić trochę dłużej. Jednak dla naukowców, którzy nie są programistami taki język jest wygodny ;) Co widać po jego klientach (o ile dobrze pamiętam, to moja uczelnia robiła jakieś oprogramowanie z osprzętem dla Głównego Urzędu Miar).

Kużdo   8 #36 25.06.2015 08:44

@czarnylas: Moim był Logo Komeniusz, o ile można go nazwać programem do programowania :) Później właśnie świetny ELI. Wpisy na pewno pojawią się ;)

@En_der: Dzięki za miłe słowa, ciąg dalszy będzie na pewno, może przez HZ jeszcze :)

Kużdo   8 #37 25.06.2015 08:46

@marcin1510: A możesz zdradzić co to za uczelnia, która uczy swoich studentów na tym super oprogramowaniu? :D ELI to chyba najlepszy program do nauki Algorytmów, prosty, bez zbędnych pierdół, łatwo i szybko idzie go ogarnąć.

Kużdo   8 #38 25.06.2015 10:30

@awangardowy (#27): Modelowanie, to modelowanie i nie ma związku jako takiego z programowaniem. Modelu nie uruchomisz, żeby działał.

Poza tym, tu nie chodzi o naukę programowania, nie do tego LabVIEW zostało stworzone. To ma pomagać nie-programistom w stworzeniu oprogramowania, które będzie mogło komunikować się z ich urządzeniami (narzędziami, np. miernikami, czujnikami itp.), będzie zbierało dane z tych urządzeń i będzie sterowało innymi urządzeniami jeżeli zajdzie taka potrzeba. Tu cel jest inny niż w językach ogólnego przeznaczenia.

#34: Zarobki nie oznaczają, że ktoś jest super i zna się na wszystkim. W moim wpisie na temat Progressa, w komentarzach, pokazałem, że osoba, która zna się na Progressie (staż minimum 4 lata) może zarabiać 20k miesięcznie. A to tylko jeden język. Wracając znów do modelowania - modelowanie nie wytworzy Ci gotowego produktu, a opisujesz je (modelowanie) jakby zajmowało Wam więcej czasu niż samo pisanie kodu. Generalnie wszędzie, gdzie tworzymy coś w grupie, to jest podział obowiązków i praktycznie zawsze na samym początku wypracowuje się jakiś prosty model co, z czym i dlaczego. A potem każdy robi swoje.

Kużdo   8 #39 25.06.2015 10:33

@Anonim (niezalogowany) i @Madafaker: Cieszę się, że podobało się :) To motywuje do dalszego pisania :)

Kużdo   8 #40 25.06.2015 10:35

@yukiyu (niezalogowany): Dziwny komentarz, w jaki sposób miałbym reklamować LabVIEW i po co, skoro nic z tego nie mam? Opisuję coś, co jest mało znane wśród typowych użytkowników z myślą, że może kogoś to zainteresuje i jeżeli tak, to chętnie podzielę się wiedzą na ten temat. Nie ma w tym nic z reklamowania produktu...

marcin1510   7 #41 25.06.2015 14:51

@Kużdo - np. PWSZ w Elblągu,

  #42 25.06.2015 19:43

Ciekawe, ciekawe. Czego to jeszcze nie wymyślą.