A wraz z nią nauka C i wątków pod Linuksa na przykładach ze średniowiecza
Z wykładów ciężko o konkrety, więc trzeba było pogoglować:
https://computing.llnl.gov/tutorials/pthreads/
To tak offtopem od C#
Czy tylko u mnie na uczelni większość profesorów zatrzymało się w czasie znając tylko 1 język, a o innych definicję z wiki? :)
poniedziałek, 13 maja 2013
sobota, 11 maja 2013
C# a Linux
Programiści pracujący na Linuxie zapewne wiedzą, że jest możliwość pisania programów w C#, lecz jeżeli ktoś będzie mieć zamiar kiedyś się pobawić linuksem bez pozbawiania się możliwości programowania w swoim ulubionym języku, to mogę polecić dwa IDE:
Nie mam zbytniej ochoty na opisywanie wszystkiego w ilości większej, niż jedno / dwa zdania.
Qt creator - miły design, dobry debugger, Ci co programują w nim więcej mogli by powiedzieć ode mnie, bo ja korzystałem z
Monodevelop - można śmiało nazwać go portem Visual Studio, oczywiście nie jest tak obszerny, ale widząc go pierwszy raz na pewno nie będziemy się zbyt martwić o chaos. Polecam dla tych, którzy spędzili trochę czasu w VS
Codeblocks - typowe, mało ważące IDE. Chyba najlepsze w kwestii rozmiar / jakość
Nie orientowałem się w kwestii C# na Qt & CB, ale MD na 100% obsługuje C#
Monodevelop
Tak wiem, brzmi jak bym faworyzował to IDE, ale po prostu jest dość przyjazne, i wspiera C# na systemie Linux
To tyle
- Qt creator
- Monodevelop
- Codeblocks
Nie mam zbytniej ochoty na opisywanie wszystkiego w ilości większej, niż jedno / dwa zdania.
Qt creator - miły design, dobry debugger, Ci co programują w nim więcej mogli by powiedzieć ode mnie, bo ja korzystałem z
Monodevelop - można śmiało nazwać go portem Visual Studio, oczywiście nie jest tak obszerny, ale widząc go pierwszy raz na pewno nie będziemy się zbyt martwić o chaos. Polecam dla tych, którzy spędzili trochę czasu w VS
Codeblocks - typowe, mało ważące IDE. Chyba najlepsze w kwestii rozmiar / jakość
Nie orientowałem się w kwestii C# na Qt & CB, ale MD na 100% obsługuje C#
Monodevelop
- Multi-platform
Supports Linux, Windows and Mac OS X.- Advanced Text Editing
Code completion support for C# 4, code templates, code folding.- Configurable workbench
Fully customizable window layouts, user defined key bindings, external tools- Multiple language support
C#, Visual Basic.Net, C/C++, Vala- Integrated Debugger
For debugging Mono and native applications- GTK# Visual Designer
Easily build GTK# applications- ASP.NET
Create web projects with full code completion support and test on XSP, the Mono web server.- Other tools
Source control, makefile integration, unit testing, packaging and deployment, localization
Tak wiem, brzmi jak bym faworyzował to IDE, ale po prostu jest dość przyjazne, i wspiera C# na systemie Linux
To tyle
niedziela, 5 maja 2013
Programowanie nie takie straszne...
Osoby zaczynające swą przygodę z programowaniem często dość szybko zostają zdemotywowani.
Kilka powodów, które uważam za istotne (z całym szacunkiem dla czytelników):
Itp. itd.
Niech to będzie motywujący wpis dla tych, którzy mają chęć rzucić programowanie w kąt
Zobaczmy, jak można napisać coś bardzo użytecznego, i jednocześnie prostego
ps. duża ilość kodu nie oznacza, że jest on skomplikowany
Klient FTP:
http://www.codeproject.com/Tips/443588/Simple-Csharp-FTP-Class
Przeglądarka WWW napisana w max 7 minut:
Odtwarzacz muzyki napisany w 5 minut
Konwerter muzyczny MP3 -> WAV ~~ 6 minut
Czemu to wszystko trwa tak krótko, i czemu (mam nadzieję) nie wydaje się koszmarem nocnym?
Ponieważ C# zawiera masę bibliotek, oraz (w porównaniu do przykładowo C++, chociaż to specyficzne porównanie, i proszące się czasami o hejt) jest dużo prostszym językiem.
Oczywiście są to aplikacje napisane w podstawowych wersjach, jeżeli będziecie uparci, to stworzycie coś ponad to. Nie ma osób specjalizujących się w każdej z tych dziedzin, dla jednej obsługa protokołów sieciowych będzie trywialne, dla innych magią (tak samo z plikami muzycznymi etc.)
Jak ktoś jest od wszystkiego, to jest do niczego
Dla tego polecam wgłębianie się w kierunku, który sobie wybierzecie, i w którym będziecie czuć się coraz pewniej. Na wszystko jest recepta, wystarczy cierpliwość, wujek google, i przede wszystkim dobry pomysł a czas zrobi swoje
Kilka powodów, które uważam za istotne (z całym szacunkiem dla czytelników):
- Grozi mi pała z przedmiotu, muszę się pouczyć bo nie dostanę na szlugi :\
- Napisałem super elo mega Hello World, w takim tempie już jutro będę pisał Fifę 2141240!!!
- Klasy, zmienne, stringi łingi, nie widzę nic konkretnego... na tym napiszę najwyżej kalkulator a i tak ten z windowsa lepszy...
- Konsola konsola konsola, całe życie z tą durną konsolą?
- Nie chce mi się...
- Nie ogarniam...
Itp. itd.
Niech to będzie motywujący wpis dla tych, którzy mają chęć rzucić programowanie w kąt
Zobaczmy, jak można napisać coś bardzo użytecznego, i jednocześnie prostego
ps. duża ilość kodu nie oznacza, że jest on skomplikowany
Klient FTP:
http://www.codeproject.com/Tips/443588/Simple-Csharp-FTP-Class
Przeglądarka WWW napisana w max 7 minut:
Odtwarzacz muzyki napisany w 5 minut
Konwerter muzyczny MP3 -> WAV ~~ 6 minut
Czemu to wszystko trwa tak krótko, i czemu (mam nadzieję) nie wydaje się koszmarem nocnym?
Ponieważ C# zawiera masę bibliotek, oraz (w porównaniu do przykładowo C++, chociaż to specyficzne porównanie, i proszące się czasami o hejt) jest dużo prostszym językiem.
Oczywiście są to aplikacje napisane w podstawowych wersjach, jeżeli będziecie uparci, to stworzycie coś ponad to. Nie ma osób specjalizujących się w każdej z tych dziedzin, dla jednej obsługa protokołów sieciowych będzie trywialne, dla innych magią (tak samo z plikami muzycznymi etc.)
Jak ktoś jest od wszystkiego, to jest do niczego
Dla tego polecam wgłębianie się w kierunku, który sobie wybierzecie, i w którym będziecie czuć się coraz pewniej. Na wszystko jest recepta, wystarczy cierpliwość, wujek google, i przede wszystkim dobry pomysł a czas zrobi swoje
Ikony obiektów
Pisząc program w C# (dokładniej będzie tu mowa o wyglądzie Visual Studio) często korzystacie z sugestii jakie oferuje wam intellisense czyli po prostu podpowiadanie użytkownikowi, jakie metody etc. może wywołac z danego obiektu.
Niektórzy pewnie wiedzą co oznaczają załączone ikony w sugestiach, anyway:
Oczywiście to nie są jedyne ikony, jakie występują w Visual Studio, lecz jedne z najważniejszych. Po więcej odsyłam do:
Class View and Object Browser Icons
Szczególnie do Signal Icons
Niektórzy pewnie wiedzą co oznaczają załączone ikony w sugestiach, anyway:
Oczywiście to nie są jedyne ikony, jakie występują w Visual Studio, lecz jedne z najważniejszych. Po więcej odsyłam do:
Class View and Object Browser Icons
Szczególnie do Signal Icons
Klasy
Ostatnio zostały opisane struktury, więc teraz pora na klasy
Zobaczmy przykładowy kod
Zostały utworzone dwa obiekty:
- Struktura kwadrat
- Klasa kwadrat
One w działaniu nie różnią się niemal niczym, oprócz tzw. "konstruktora" (ang. constructor)
Różnica jest trywialna - niektóre zmienne można podawać już na etapie tworzenia obiektu
Niektórzy mogą pomyśleć, czy to jest takie użyteczne. Odpowiedź jest bardzo prosta - tak, z kilku powodów:
- Przeglądając w sieci dokumentacje niektórych funkcji (tu kłania się strona MSDN, postaram się zrobić o tym jakiś wpis) dowiecie się, że klasy są niemal wszędzie
- Oszczędność linijek w kodzie, można zyskać na estetyce kodu (chociaż są wyjątki)
- Jeżeli czytacie to dla siebie z chęci programowania, a nie z obowiązku zaliczenia semestru, to sami się z biegiem czasu przekonacie czemu konstruktor jest użyteczny
Klasa w porównaniu do struktury wyróżnia się owymi najważniejszymi faktami
Kopiowanie klas i struktur
Może najprościej zamieszczę kod i rezulat
W skrócie: w przeciwieństwie do struktur, zmiana wartości jednej z kopiowanej klasy ma wpływ na jej pozostałe kopie
Dziedziczenie klas:
Dziedziczenie klas, to najprościej ujmując ich nakładanie się.
Kod przykładowy:
Struct | Class | |
Dziedziczenie | NIE | TAK |
Konstruktor | NIE | TAK |
*Kwantyfikatory dostępu | TAK | TAK |
*NULL reference | NIE | TAK |
Interfejsy | TAK | TAK |
Subskrybuj:
Posty (Atom)