Vilket språk bör jag lära mig?

Här diskuteras programmering och utveckling
Användarvisningsbild
christer
Inlägg: 1362
Blev medlem: 11 jan 2007, 17:42
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: Vilket språk bör jag lära mig?

Inlägg av christer »

Sudo gedit är ju en grafisk texteditor, som man kan skriva Python, c, c++ osv. med.
Lätt att hitta filer inget ls behövs. Grubs menu.lst kan lätt ändras.
När gedit öppnas med sudo kan allt ju sparas och editeras som root.
Knappt någon träning eller övning krävs som i Vi, emacs och liknande.

Word, Exel förutsätter skolor att eleverrna behärskar. Ingenjörer, som gör sitt slutarbete
är ofta illa tvungen att lära sig. Handledaren får påpeka, men inte hjälpa till.
En del skolor har sitt lärostoff i Power Point. Att köra med OpenOffice kräver att
man sparar i rätt format för att andra skall förstå.

Det är bara några högskoleinriktningar, som gör sina arbeten med LaTex och skriver text
allt i ett och redigerar efteråt. Verkar som det skulle vara något slags lättja.
Ordbehandlare i moderna Office ger överskådlighet genast från början.

Det är mycket få, som egentligen har något behov av LaTex eller emacs.
Användarvisningsbild
bbauto
Inlägg: 1594
Blev medlem: 11 dec 2006, 17:58
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: Bromölla

Re: Vilket språk bör jag lära mig?

Inlägg av bbauto »

christer skrev:Sudo gedit är ju en grafisk texteditor, som man kan skriva Python, c, c++ osv. med.
Lätt att hitta filer inget ls behövs. Grubs menu.lst kan lätt ändras.
När gedit öppnas med sudo kan allt ju sparas och editeras som root.
Knappt någon träning eller övning krävs som i Vi, emacs och liknande.

Word, Exel förutsätter skolor att eleverrna behärskar. Ingenjörer, som gör sitt slutarbete
är ofta illa tvungen att lära sig. Handledaren får påpeka, men inte hjälpa till.
En del skolor har sitt lärostoff i Power Point. Att köra med OpenOffice kräver att
man sparar i rätt format för att andra skall förstå.

Det är bara några högskoleinriktningar, som gör sina arbeten med LaTex och skriver text
allt i ett och redigerar efteråt. Verkar som det skulle vara något slags lättja.
Ordbehandlare i moderna Office ger överskådlighet genast från början.

Det är mycket få, som egentligen har något behov av LaTex eller emacs.
Nja emacs är lite mer än en vanlig ordbehandlare/editor, det riktar väl sig i första hand till programmerare och avancerade användare. Visst går det bra att använda gedit för python, c, c++ etc men det innehåller inte lika många verktyg för detta ändamålet som emacs. Så många programmerare har behov av det, för andra är inte behovet så stort. :)
Användarvisningsbild
mcNisse
Inlägg: 5211
Blev medlem: 06 feb 2007, 20:51
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

Re: Vilket språk bör jag lära mig?

Inlägg av mcNisse »

Nu börjar tråden gå offtopic. Jag tog bara upp emacs för att man kan skriva egna utökningar av emacs i lisp (elisp).

Jag tycker som många andra att man ska starta med python, perl eller ruby, mao något av de kraftfulla skripspråken som kommer med din linuxdist. Detta för att jag ogillar starkt "typade" språk. Ruby har jag inte testat men koden ser ren och fin ut (den jag har läst).
Användarvisningsbild
bbauto
Inlägg: 1594
Blev medlem: 11 dec 2006, 17:58
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: Bromölla

Re: Vilket språk bör jag lära mig?

Inlägg av bbauto »

mcNisse skrev:Nu börjar tråden gå offtopic. Jag tog bara upp emacs för att man kan skriva egna utökningar av emacs i lisp (elisp).

Jag tycker som många andra att man ska starta med python, perl eller ruby, mao något av de kraftfulla skripspråken som kommer med din linuxdist. Detta för att jag ogillar starkt "typade" språk. Ruby har jag inte testat men koden ser ren och fin ut (den jag har läst).
Tycker du den börjar bli offtopic?? Det tycker inte jag... Vi var inne på frågan VAD som lämpar sig för olika ändamål PHP, Perl, Python, Ruby, CLISP... Har fått jättebra svar vad gäller Lisp, skulle gärna vilja få lite exempel på PHP, Perl, Python och Ruby också dvs. styrkor och svagheter i resp. språk. :)
Användarvisningsbild
mcNisse
Inlägg: 5211
Blev medlem: 06 feb 2007, 20:51
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

Re: Vilket språk bör jag lära mig?

Inlägg av mcNisse »

Nej, just det du tar upp är inte ot... ;)

PHP är väl lämpat för att ta fram webapplickationer.

Perl använder jag när jag vill manipulera text (när awk inte räcker till) eller när skalskripten börjar kräva komplexa strukturer.

python är bra på allt. python och perl har imho lite överlappande användningsområden.
Användarvisningsbild
bbauto
Inlägg: 1594
Blev medlem: 11 dec 2006, 17:58
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: Bromölla

Re: Vilket språk bör jag lära mig?

Inlägg av bbauto »

mcNisse skrev:Nej, just det du tar upp är inte ot... ;)

PHP är väl lämpat för att ta fram webapplickationer.

Perl använder jag när jag vill manipulera text (när awk inte räcker till) eller när skalskripten börjar kräva komplexa strukturer.

python är bra på allt. python och perl har imho lite överlappande användningsområden.
Ruby verkar populärt bland spelutvecklare!? Hur kommer sig det?? enklare grafikhantering??? :)
Användarvisningsbild
christer
Inlägg: 1362
Blev medlem: 11 jan 2007, 17:42
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: Vilket språk bör jag lära mig?

Inlägg av christer »

Har nu läst hundratals sidor med Python och C++ och gått igenom massor av
korta programsnuttar. Men någon sprakande färggrafik hittar jag inte.
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Vilket språk bör jag lära mig?

Inlägg av Konservburk »

christer skrev:Har nu läst hundratals sidor med Python och C++ och gått igenom massor av
korta programsnuttar. Men någon sprakande färggrafik hittar jag inte.
Här har du lite C-kod som ordnar med sprakande färggrafik:

http://github.com/ghostbar/deb-xscreens ... c&raw=true
Användarvisningsbild
Urban Anjar
Inlägg: 7306
Blev medlem: 05 nov 2006, 22:59
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: Vickleby
Kontakt:

Re: Vilket språk bör jag lära mig?

Inlägg av Urban Anjar »

Det är nog så att om man har intresse och fallenhet bör man lära sig flera olika språk.

Vilket man börjar med är inte så fasligt viktigt. Leta efter en bra tutorial, en bra lärobok eller en pedagogisk och tålmodig vän och välj förstaspråk efter det. Sen rullar det på.

Givetvis kan det vara bra att hitta ett språk som inte är för komplicerat att läsa och skriva som förstaspråk. Att hitta gott om kod att läsa kan också vara en ledtråd.
Ubuntu från början: http://ubuntufranborjan.wordpress.com/
Vill påminna om den här lilla filmen http://video.google.com/videoplay?docid ... 522818645#
Användarvisningsbild
serialsniffer
Inlägg: 235
Blev medlem: 13 dec 2008, 14:04
OS: Ubuntu
Utgåva: 18.04 Bionic Beaver LTS
Ort: Hackerland
Kontakt:

Re: Vilket språk bör jag lära mig?

Inlägg av serialsniffer »

du saknar screenhack biblioteket:)
------------------------
Serial Sniffer

Linux Ubuntu 9.10 Karmic Koala Gnome.

Jag är fadder. Läs om mighttp://ubuntu-se.org/phpBB3/viewtopic.p ... 60#p323784
Användarvisningsbild
christer
Inlägg: 1362
Blev medlem: 11 jan 2007, 17:42
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: Vilket språk bör jag lära mig?

Inlägg av christer »

Varifrån får man screenhack.h ? Hittade inte från Synaptic.
Googlesök screenhack.h download gav. Om detta är screenhack, vart skall den då stoppas ?
Får radnummer vara med ?
Är screenhack lämplig väg? Skall det inte redan finnas i Ubuntu något, som får bilder att leva med C++ ?



1 /* xscreensaver, Copyright (c) 1992-2008 Jamie Zawinski <jwz@jwz.org>
2 *
3 * Permission to use, copy, modify, distribute, and sell this software and its
4 * documentation for any purpose is hereby granted without fee, provided that
5 * the above copyright notice appear in all copies and that both that
6 * copyright notice and this permission notice appear in supporting
7 * documentation. No representations are made about the suitability of this
8 * software for any purpose. It is provided "as is" without express or
9 * implied warranty.
10 */
11
12 #ifndef __SCREENHACK_H__
13 #define __SCREENHACK_H__
14
15 #include "screenhackI.h"
16
17 /* In an Xlib world, we define two global symbols here:
18 a struct in `MODULENAME_xscreensaver_function_table',
19 and a pointer to that in `xscreensaver_function_table'.
20
21 In a Cocoa world, we only define the prefixed symbol;
22 the un-prefixed symbol does not exist.
23 */
24 #ifdef HAVE_COCOA
25 # define XSCREENSAVER_LINK(NAME)
26 #else
27 # define XSCREENSAVER_LINK(NAME) \
28 struct xscreensaver_function_table *xscreensaver_function_table = &NAME;
29 #endif
30
31
32 #if defined(HAVE_COCOA) && !defined(__XLOCKMORE_INTERNAL_H__)
33 /* this is one enormous kludge... */
34 # undef ya_rand_init
35 static void
36 xscreensaver_common_setup(struct xscreensaver_function_table *xsft, void *a)
37 { ya_rand_init(0); }
38 #else
39 # define xscreensaver_common_setup 0
40 #endif
41
42
43 #define XSCREENSAVER_MODULE_2(CLASS,NAME,PREFIX) \
44 struct xscreensaver_function_table \
45 NAME ## _xscreensaver_function_table = { \
46 CLASS, \
47 PREFIX ## _defaults, \
48 PREFIX ## _options, \
49 xscreensaver_common_setup, 0, \
50 PREFIX ## _init, \
51 PREFIX ## _draw, \
52 PREFIX ## _reshape, \
53 PREFIX ## _event, \
54 PREFIX ## _free, \
55 0, 0, 0 }; \
56 XSCREENSAVER_LINK (NAME ## _xscreensaver_function_table)
57
58 #define XSCREENSAVER_MODULE(CLASS,PREFIX) \
59 XSCREENSAVER_MODULE_2(CLASS,PREFIX,PREFIX)
60
61 #endif /* __SCREENHACK_H__ */
62
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Vilket språk bör jag lära mig?

Inlägg av Konservburk »

christer skrev:Varifrån får man screenhack.h ? Hittade inte från Synaptic.
Googlesök screenhack.h download gav. Om detta är screenhack, vart skall den då stoppas ?
Får radnummer vara med ?
Är screenhack lämplig väg? Skall det inte redan finnas i Ubuntu något, som får bilder att leva med C++ ?
Screenhack har egentligen ingenting med de sprakande färgerna att göra. Den behövs för andra saker som inte är intressant i det här sammanhanget. Plockar man ut de relevanta delarna av koden så blir det ungefär så här istället:

Kod: Markera allt

#include <stdlib.h>
#include <unistd.h>
#include <X11/Xlib.h>

int main()
{
        Display *dpy;
        Window win;
        XWindowAttributes xwa;

        XColor xcl;
        int i, red, green, blue, r, g, b;
        int ctab[256];

        XGCValues gcv;
        GC gc;
        XImage *xim;

        XEvent event;

        unsigned char *flame;
        int fwidth, fheight, hspread, vspread, residual;
        int x, y, v1, v2, v3, v4;
        int top, newtop, used;
        unsigned char *ptr1, *ptr2;
        unsigned int *ptr;

        int ihspread = 30;
        int ivspread = 97;
        int iresidual = 99;
        int variance = 50;
        int vartrend = 20;
        int delay = 10000;


        dpy = XOpenDisplay(NULL);
        if (!dpy) return 1;
        win = DefaultRootWindow(dpy);

        XGetWindowAttributes(dpy, win, &xwa);
        fwidth  = (xwa.width + 1) / 2;
        fheight = (xwa.height + 1) / 2;

        if (!XParseColor(dpy, xwa.colormap, "#FFAF5F", &xcl)) return 1;
        if (!XAllocColor(dpy, xwa.colormap, &xcl)) return 1;
        XQueryColor(dpy, xwa.colormap, &xcl);

        red = 3 * (255 - (xcl.red >> 8));
        green = 3 * (255 - (xcl.green >> 8));
        blue = 3 * (255 - (xcl.blue >> 8));
        for (i = 0; i < 256; i++)
        {
                r = 6*i - red;
                g = 6*i - green;
                b = 6*i - blue;

                if (r < 0) r = 0;
                if (g < 0) g = 0;
                if (b < 0) b = 0;
                if (r > 255) r = 255;
                if (g > 255) g = 255;
                if (b > 255) b = 255;

                xcl.red   = (unsigned short) ((r << 8) | r);
                xcl.green = (unsigned short) ((g << 8) | g);
                xcl.blue  = (unsigned short) ((b << 8) | b);
                xcl.flags = DoRed | DoGreen | DoBlue;

                XAllocColor(dpy, xwa.colormap, &xcl);
                ctab[i] = (int) xcl.pixel;
        }

        gcv.subwindow_mode = IncludeInferiors;
        xim = XCreateImage(
                dpy, xwa.visual, xwa.depth, ZPixmap,
                0, NULL, xwa.width, xwa.height, 32, 0);
        if (!xim) return 1;
        xim->data = (char *) calloc(xim->height, xim->bytes_per_line);
        if (!xim->data) return 1;
        gc = XCreateGC(dpy, win, GCSubwindowMode, &gcv);
        if (!gc) return 1;

        XGrabServer(dpy);
        if (    XGrabKeyboard(dpy, win, False,
                              GrabModeAsync, GrabModeAsync,
                              CurrentTime) != GrabSuccess ||
                XGrabPointer(dpy, win, False, ButtonPressMask,
                             GrabModeAsync, GrabModeAsync,
                             None, 0, CurrentTime) != GrabSuccess
                ) return 1;
        XImage *ximbak = XGetImage(
                dpy, win, 0, 0, xwa.width, xwa.height, AllPlanes, ZPixmap);
        XFillRectangle(dpy, win, gc, 0, 0, xwa.width, xwa.height);

        flame = (unsigned char *)
                malloc((fwidth + 2) * (fheight + 2) * sizeof(unsigned char));
        if (!flame) return 1;

        for (y = 0; y < fheight + 1; y++)
        {
                ptr1 = flame + 1 + (y * (fwidth + 2));
                for (x = 0; x < fwidth; x++)
                {
                        *ptr1 = 0;
                        ptr1++;
                }
        }
        hspread = ihspread;
        vspread = ivspread;
        residual = iresidual;

        for(top = 1;;) {
                ptr1 = flame + (fheight + 1) * (fwidth + 2);
                for (x = 0; x < fwidth + 2; x++)
                {
                        v1 = *ptr1 + ((random() % variance) - vartrend);
                        *ptr1++ = v1 % 255;
                }
                hspread = ((ihspread * 10) + (hspread * 90)) / 100;
                vspread = ((ivspread * 10) + (vspread * 90)) / 100;
                residual = ((iresidual * 10) + (residual * 90)) / 100;

                for (newtop = top, y = fheight + 1; y >= top; y--)
                {
                        ptr1 = flame + 1 + (y * (fwidth + 2));
                        for (used = 0, x = 0; x < fwidth; x++)
                        {
                                v1 = (int) *ptr1;
                                if (v1 > 0)
                                {
                                        used = 1;
                                        ptr2 = ptr1 - fwidth - 2;
                                        v3 = (v1 * vspread) >> 8;
                                        v2 = (int)*(ptr2);
                                        v2 += v3;
                                        if (v2 > 255) v2 = 255;

                                        *(ptr2) = (unsigned char) v2;
                                        v3 = (v1 * hspread) >> 8;
                                        v2 = (int)*(ptr2 + 1);
                                        v2 += v3;
                                        if (v2 > 255) v2 = 255;

                                        *(ptr2 + 1) = (unsigned char) v2;
                                        v2 = (int)*(ptr2 - 1);
                                        v2 += v3;
                                        if (v2 > 255) v2 = 255;

                                        *(ptr2 - 1) = (unsigned char) v2;

                                        if (y < fheight + 1)
                                        {
                                                v1 = (v1 * residual) >> 8;
                                                *ptr1 = (unsigned char) v1;
                                        }
                                }
                                ptr1++;
                                if (used) newtop = y - 1;
                        }
                        *ptr1 = (unsigned char)
                                ((((int)*ptr1) * residual) >> 8);
                }
                top = newtop - 1;
                if (top < 1) top = 1;

                ptr1 = flame + 1 + (top * (fwidth + 2));
                ptr  = (unsigned int *)xim->data + (top << 1) * xwa.width;
                for (y = top; y < fheight; y++, ptr1 += 2, ptr += xwa.width)
                {
                        for (x = 0; x < fwidth; x++, ptr1++)
                        {
                                v1 = (int) *ptr1;
                                v2 = (int) *(ptr1 + 1);
                                v3 = (int) *(ptr1 + 2 + fwidth);
                                v4 = (int) *(ptr1 + 3 + fwidth);

                                *ptr = (unsigned int) ctab[v1];
                                ptr++;

                                *ptr = (unsigned int) ctab[(v1 + v2) >> 1];
                                ptr += xwa.width - 1;

                                *ptr = (unsigned int) ctab[(v1 + v3) >> 1];
                                ptr ++;

                                *ptr = (unsigned int) ctab[(v1 + v4) >> 1];
                                ptr -= xwa.width - 1;
                        }
                }

                XPutImage(dpy, win, gc, xim, 0,
                          (top - 1) << 1, 0, (top - 1) << 1,
                          xwa.width, xwa.height - ((top - 1) << 1));
                XSync(dpy, False);
                usleep(delay);
                while (XPending(dpy))
                {
                        XNextEvent(dpy, &event);
                        switch (event.type)
                        {
                        case KeyPress:
                        case ButtonPress:
                                XPutImage(
                                        dpy, win, gc, ximbak,
                                        0, 0, 0, 0, xwa.width, xwa.height);
                                XUngrabPointer(dpy, CurrentTime);
                                XUngrabKeyboard(dpy, CurrentTime);
                                XUngrabServer(dpy);
                                XCloseDisplay(dpy);
                                return 0;
                        }
                }
        }
}
När du har libx11-dev installerat ska du kunna kompilera med gcc -lX11 filen.c
Användarvisningsbild
christer
Inlägg: 1362
Blev medlem: 11 jan 2007, 17:42
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: Vilket språk bör jag lära mig?

Inlägg av christer »

X11/Xlib.h finns inte.
Försökte hitta med locate.
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Vilket språk bör jag lära mig?

Inlägg av Konservburk »

christer skrev:X11/Xlib.h finns inte.
Försökte hitta med locate.
:P

Kod: Markera allt

sudo apt-get install libx11-dev
Användarvisningsbild
christer
Inlägg: 1362
Blev medlem: 11 jan 2007, 17:42
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: Vilket språk bör jag lära mig?

Inlägg av christer »

libx11-dev fanns i synaptic och kunde klickas in.
gcc filen.c gav felmeddelanden.
gcc -lX11 filen.c kompilerades och gav en körbar fil a.out.
varför måste -lX11 finnas med ?

När a.out kördes började skärmen "brinna" nedtill.

Nu skulle det gälla att förstå hur det fungerar.
Användarvisningsbild
mcNisse
Inlägg: 5211
Blev medlem: 06 feb 2007, 20:51
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

Re: Vilket språk bör jag lära mig?

Inlägg av mcNisse »

christer skrev:libx11-dev fanns i synaptic och kunde klickas in.
gcc filen.c gav felmeddelanden.
gcc -lX11 filen.c kompilerades och gav en körbar fil a.out.
varför måste -lX11 finnas med ?
För tala om för länkaren att du behöver funktioner from X11 libbet.
Användarvisningsbild
Rasmus
Inlägg: 2291
Blev medlem: 07 sep 2006, 18:33
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS
Ort: Svalsta

Re: Vilket språk bör jag lära mig?

Inlägg av Rasmus »

christer skrev:libx11-dev fanns i synaptic och kunde klickas in.
gcc filen.c gav felmeddelanden.
gcc -lX11 filen.c kompilerades och gav en körbar fil a.out.
varför måste -lX11 finnas med ?
I vanliga fall sköts det med en makefile men nu när du körde utan den så blir det så som mcNisse skrev.
Skriv svar

Återgå till "Programmering och webbdesign"