
Show HN: A simple GUI Notepad using C++ natively made in my high school in 2015 - mindfreeze
https://github.com/vibhoothiiaanand/CNotepad
======
oars
No matter what language type of C++ he is using, I find this an amazing
achievement for a high schooler.

I didn't write my first line of code until I was 20 years old in college, and
8 years later I am now a lead developer at one of my country's largest
telecommunications companies.

I can't imagine how amazing this guy is going to become being able to build
this at such a young age. Keep it up!

~~~
qwerty1234599
There's lots of kids as young as like 12 out there on the internet programming
complex projects all on their own.

Granted, it is amateurish code for amateurish projects, but the users don't
care and gladly eat it up.

~~~
oldlinux
This guy comes to mind:
[https://www.youtube.com/watch?v=egukLtEhyP0](https://www.youtube.com/watch?v=egukLtEhyP0)

------
nickjj
Building a text editor is fun. It's the ultimate scratch your own itch
project.

I remember building one back in the day (2002) with Visual Basic 6.

Unfortunately I lost the source code but I still have the website's code.
Feature wise it had syntax highlighting, column selection, project wide find /
replace, file edit history (timeline), multiple clipboards, splits and more.

Does anyone remember what that really good text editor control was in VB6? It
did most of the heavy lifting. It wasn't a built-in control.

~~~
wila
That sounds like CodeMax, or its descendent CodeSense.

CodeMax was originally a product by Barry Allyn (WinMain software) and it was
pretty good.

Unfortunately though for him the market was pretty small and it was difficult
to survive as a commercial product. It was open source for a short while and
that was when CodeSense came about.

~~~
nickjj
Hmm, it definitely wasn't CodeMax but CodeSense rings a bell, but I'm only
about 10% sure it was CodeSense.

I think I would immediately know the name if it were mentioned. It was much
faster and better than anything at the time when it came out.

------
projektfu
If you like stories about kids going way above and beyond in programming, read
about Raymond Lau and Stuffit.

[https://en.wikipedia.org/wiki/StuffIt](https://en.wikipedia.org/wiki/StuffIt)

------
maxfan8
Shouldn’t the title of this have a “Show HN: “ prepended?

~~~
mindfreeze
Updated, Thanks

------
smlckz
Nice.

>> I would now love to opensource the project for everyone.

Where is the license?

Learn more about licensing here:
[https://help.github.com/en/articles/licensing-a-
repository](https://help.github.com/en/articles/licensing-a-repository)

------
oatbix
I dont know what age range high school encompasses where you are, but assuming
its similar to the Uk thats a mighty achivement, especially considering your
frank recognition of the bugz

~~~
notRobot
OP appears to be from India.

I've interacted with several HS graduates from India, and those who opt for CS
in HS (11th and 12th grade; usually ages 16-17) are usually taught C++ in
Turbo C++ 3.0. This release of Turbo C++ was released in 1990.

That's... not great. For reference, the C++ programming language was first
standardized in 1998.

Thus, most graduates never learn _proper_ C++ in the sense that a lot of what
they're taught doesn't even compile on modern compilers and they aren't aware
of many new* features.

That said, this project is still pretty impressive for an HS student, even if
it's written in ancient C++ and requires DOS to run :)

*new = anything introduced to C++ in the last three decades (after 1991).

However, apparently they've introduced Python3 last year, so hopefully the
situation will improve :)

~~~
larodi
I've been spittings hundreds of c++ code back in 1996-1999, not knowing that
it was not...standardized. You may be astonished at the complexity. The only
downside was that it took minutes to compile it on 386DX and Borland's C
compiler was faster with C. Inline assembly was a commonplace back in the day,
so to know C/C++ actually meant to know Assembly and hand-optimize code more
often than not.

~~~
notRobot
I've worked with plenty of complex legacy C/C++ :).

The downsides are that it doesn't run on modern machines, is difficult to
maintain, and you need to implement dozens of workarounds to do basic things
that can be done in modern languages with just a couple lines of code.

------
giancarlostoro
Mine's not as cool but I did a similar project using Qt and C++:

[https://github.com/Giancarlos/qNotePad](https://github.com/Giancarlos/qNotePad)

I wanted to make a cross platform text editor that was simple and consistent
throughout different platforms. I found it easier to do it in Delphi cause I
wasn't sure how to hook up a syntax highlighter for it. I'm proud of the small
bits I did code though. C++ isn't really my strongest language.

------
trashburger
The function declarations are formatted in such a way that it makes you think
the prototypes come after.

Solid project, but I suggest you run the file through something like clang-
format.

------
g105b
I don't care how many bugs it's got. The fact you've done something that isn't
700MB Electron app gets my upvote. Great work!

~~~
nnoitra
Simple thinking is frowned upon nowadays.

------
zerr
What school was it? :) Maybe you could share the curriculum/syllabus of coding
classes in that school? Thanks!

~~~
mindfreeze
It is Kendriya Vidyalaya[1], chain of Central Government Schools in India, so
they have almost one school in almost in a district of a state. or sometimes
two or three in the state depending on Population Density.

So at that time Syllabus is something like this[2], it is not exactly same,
almost same and I think this was overall pattern of that[2], now it is again
revamped[3].

At our time it was more like 4 hours theory/week and 1.5/2 hours lab
sessions(which sometimes becomes theory).

[1]:
[https://en.wikipedia.org/wiki/Kendriya_Vidyalaya](https://en.wikipedia.org/wiki/Kendriya_Vidyalaya)

[2]:
[https://www.kv1bhuj.org/admin/downloads/1997118251study_mate...](https://www.kv1bhuj.org/admin/downloads/1997118251study_material_xii_comp\(1\).pdf)

[3]: [http://cbseacademic.nic.in/web_material/Curriculum19/Main-
Se...](http://cbseacademic.nic.in/web_material/Curriculum19/Main-
SeniorSecondary/14_Computer_science_New.pdf)

------
notRobot

        #include<conio.h>
        #include<dos.h>
    
    

This appears to be for DOS, and I'm betting this was written in Turbo C++.
From what I've heard from my friends, almost all schools in India still use
Turbo C++ (in DosBox) to teach C++. Ew.

~~~
reassembled
36 year old me is very glad to have learned VGA graphics programming with
Turbo Pascal and Turbo C++ during high school. I've met kids these days coming
out of university CS degrees in the U.S.A. that still don't have a solid grasp
on how pointers work.

I believe it is in every programmer's interest to have a deep understanding of
the system for which they are working on, even if they don't need to use the
low level tools from day to day. Teaching C++ in DOS can still provide an
excellent CS foundation IMO.

~~~
saurik
I would even argue it is much better than trying to do so on a more modern
system, as you directly can just use graphics and color (which is both fun and
helps teach a lot of programming concepts that are useful to know for building
UIs later) without wasting a ton of time learning some UI toolkit that will be
neither instructive nor actually-useful in the real world (as even if you
choose a good one, it is almost certainly going to be obsolete by the time you
go to get a job).

~~~
Koshkin
Here is a nice quick tutorial on using the frame buffer in Linux:
[https://cmcenroe.me/2018/01/30/fbclock.html](https://cmcenroe.me/2018/01/30/fbclock.html)

