Image Map Image Map
Page 2 of 3 FirstFirst 123 LastLast
Results 11 to 20 of 24

Thread: your largest application

  1. #11
    Join Date
    Aug 2006
    Location
    Chicagoland, Illinois, USA
    Posts
    6,237
    Blog Entries
    1

    Default

    Quote Originally Posted by KC9UDX View Post
    Of course, "lines" isn't really an ideal comparison.
    One of the few times I ever agreed with Steve Balmer was his deriding of "KLOCs":

    Offering a bounty for:
    - A working Sanyo MBC-775, Olivetti M24, or Logabax 1600
    - Music Construction Set, IBM Music Feature edition (has red sticker on front stating IBM Music Feature)

  2. #12

    Default

    Quote Originally Posted by Chuck(G) View Post
    Real Programmers™ don't write applications--they write systems code.
    So once they've written systems code, they have to stop?

  3. #13
    Join Date
    Jan 2005
    Location
    Principality of Xeon the Great State of Central New Jerky
    Posts
    1,524

    Default

    Old programmers never die. They just parse out.

  4. #14
    Join Date
    Dec 2012
    Location
    Russia, Moscow
    Posts
    128

    Default

    File commander, like a Norton Commander. Written in Borland Pascal/assembler, so main executable file < 64Kb with powerful Editor (copy+paste, clipboard, some other features), internal disk formatter and disk utilites and killer feature - snake game -) I don't calculate how many string it has, if someone can - there we are: http://old-dos.ru/index.php?page=fil...o=show&id=2796



    We wrote it together with a friend in the last grades of the school. None of us have studied as programmers yet, so there is code like this:
    Code:
    if Length(PP.curdir)<36 then
       pt:=' '+PP.curdir+' '
       else pt:=' \...'+Copy(PP.curdir,Length(PP.curdir)-30,31)+' ';
    Ptr:=PP.f_ptr;
    if PP.vol='' then PP.vol:='No Label';
    WriteString(1,cc+(40-length(pt)) div 2,pt,Pal[8]);
    WriteString(22,cc+1+(cc*(34-length(PP.vol))) div 40,'['+PP.vol+']',Pal[7]);
    if PP.vol='No Label' then  PP.vol:='';
    {if PP.empty then exit;}
    inc(ptr,sizeof(filrec)*row);
    for i:=row to n+row do begin
        if (i <PP.files) and (not PP.empty) then 
           begin fname:=ptr^.filename;
           {if (ptr^.fileattr and 16) = 0 then StrLwr(fname);}
           if (Ptr^.fileattr and 2) <> 0 
              then fname[1]:=upcase(fname[1]);
           if ((Ptr^.fileattr and Hidden) <> 0) and (Pos('.',Fname)>0) 
              then fname[Pos('.',Fname)+1]:=upcase(fname[Pos('.',Fname)+1]);
           SortFIle(fname);
           for a := length(fname) to 11 do fname:=fname+' ';
           fname:=fname+'│';
           if (Ptr^.fileattr and 16) = 0
              then Str(Ptr^.filesize:10,pt)
              else if fname[1]='.' 
                      then pt:='�UP──-DIR�'
                      else pt:='�SUB─-DIR�';
           fname:=fname+pt+'│';
           DateTimeCnv(pt,Ptr^.filedttm);
           fname:=fname+pt;     {SetFattr}
           if Ptr^.selected then WriteString(2+i-row,cc,fname,Pal[1]) else
           WriteString(2+i-row,cc,fname,Pal[2]);
           inc(ptr,sizeof(filrec));
           end
           else WriteString(2+i-row,cc,'            │          │        │     ',Pal[1]);
          end;
        end;
    procedure Put_File(PP:Panel;cc,row,x:word;active:boolean);
    var
    fname,pt:string;
    {ptr:P_filrec;}
    begin
    if PP.empty then exit;
    ptr:=PP.F_ptr;
    inc(ptr,sizeof(filrec)*(row+x));
    fname:=ptr^.filename;
    {if (ptr^.fileattr and 16) = 0 then StrLwr(fname);}
    if (Ptr^.fileattr and 2) <> 0 then fname[1]:=upcase(fname[1]);
    if ((Ptr^.fileattr and Hidden) <> 0) and (Pos('.',Fname)>0) then fname[Pos('.',Fname)+1]:=upcase(fname[Pos('.',Fname)+1]);
    SortFile(fname);
    for a := length(fname) to 11 do fname:=fname+' ';
    fname:=fname+'│';
    if (Ptr^.fileattr and 16) = 0 then Str(Ptr^.filesize:10,pt)
    else if fname[1]='.' then pt:='�UP──-DIR�'
         else pt:='�SUB─-DIR�';
    fname:=fname+pt+'│';
    DateTimeCnv(pt,Ptr^.filedttm);
    fname:=fname+pt;
    if active
       then If Ptr^.selected 
            then WriteString(2+x,cc,fname,Pal[3])
            else WriteString(2+x,cc,fname,Pal[4])
       else if Ptr^.selected
            then WriteString(2+x,cc,fname,Pal[1])
            else WriteString(2+x,cc,fname,Pal[2])
    But nonetheless, it worked. Later we realized that this code is unsupported, we started developing from scratch a new file manager for os/2 on Virtual Pascal 2.0. Making the first prototype displaying files in panels, the project was finally abandoned and the source codes were lost along with the disk in the HPFS file system.
    Last edited by Tronix; November 22nd, 2019 at 10:44 PM.

  5. #15

    Default

    Quote Originally Posted by tipc View Post
    The bbs software in basic ... that impresses me especially somehow . How did it run?
    Pretty well! When I closed up shop in 1988, one of the members took it over. He was extremely surprised to find that the entire BBS ran off of 4 floppies. He thought for sure I had a rear admiral (which I desperately wanted at the time but could not afford. )

  6. #16

    Default

    Quote Originally Posted by dhoelzer View Post
    Pretty well! When I closed up shop in 1988, one of the members took it over. He was extremely surprised to find that the entire BBS ran off of 4 floppies. He thought for sure I had a rear admiral (which I desperately wanted at the time but could not afford. )
    That's pretty awesome.

  7. #17
    Join Date
    Aug 2006
    Location
    Chicagoland, Illinois, USA
    Posts
    6,237
    Blog Entries
    1

    Default

    Quote Originally Posted by Tronix View Post
    None of us have studied as programmers yet, so there is code like this:
    Other than inconsistent intenting/style, I don't see anything particularly bad about that code...
    Offering a bounty for:
    - A working Sanyo MBC-775, Olivetti M24, or Logabax 1600
    - Music Construction Set, IBM Music Feature edition (has red sticker on front stating IBM Music Feature)

  8. #18
    Join Date
    Mar 2017
    Location
    New Jersey, USA
    Posts
    546

    Default

    I took a quick look in my source code folders and I was somewhat surprised to find that most of my 'big' programs tend to be around the same size, 5000-6000 lines or so (excluding blank lines). At the very high end of this range is a 7182 line program written for my employer. Among my personal projects, I think my VT05 emulator (which I've posted about elsewhere on this forum) is the largest at 6764 lines although I expect FSX to easily surpass it when I get more time to work on it. All of these are written in C#, and all of them were 'stable' during most of their development because my usual approach is to add features incrementally. I've also written fairly large programs in VB6, and even VBScript. I found a VBScript program in my archives that was 5133 lines, and a VB6 program that was 5940 lines. The VBScript one was personal, the VB6 one was for work.

    But the absolute largest single application I found in my archives (so far) weighs in at 14236 lines of VB.NET code. This was basically a protocol decoder/analyzer that examined network traffic (captured live, or via a dump file) for another program. This was a personal project, not something for my job.

  9. #19

    Default

    Some numbers for the current mTCP source code. (These are just raw line counts, which include comments.)

    • The TCP library: 11907 (Includes ARP, IP, UDP, TCP and utility functions like trace support and parsing config files)
    • DHCP client: 1116
    • FTP Client: 3582
    • FTP Server: 5341
    • HTGet: 1587
    • HTTP Server: 7221
    • IRCjr: 4590
    • Netcat: 1256
    • Ping: 596
    • PktTool: 1295
    • SNTP: 651
    • Telnet: 6688


    The surprise here is that Telnet is such a beast. ANSI terminal emulation, Telnet options negotiation, X/Ymodem upload and download all take up a bit of code. (X/Ymodem specifically are around 2400 lines of that.)

  10. #20

    Default

    I never brag about lines of code I've written. I do brag about how few lines I've written though. There is a point though where the code is optimal. Any smaller and it would be inefficient speed wise, any longer and it would be unmaintainable garbage.
    Dwight

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •