• Home
  • About
    • About The Coder
    • Language List
  • The Rules
    • Rule #1: Clarity Trumps Everything
    • Rule #2: Source Code is for Humans
    • Rule #3: Don’t Ignore Warnings
    • Rule #4: Comment As You Go!
    • Rule #5: Always Use Parentheses
  • CS-101
  • Guestbook

The Hard-Core Coder

~ I just can't stop writing code!

The Hard-Core Coder

Tag Archives: computer science

OOP versus Imp

25 Tuesday Jun 2019

Posted by Wyrd Smythe in Opinion

≈ Leave a comment

Tags

computer code, computer language, computer languages, computer programming, computer science, imperative programming language, language design, Object-Oriented Programming, OOP, programming language

This is another note for a friend: a followup to a discussion about how some programmers really hate Object-Oriented Programming (OOP) languages.

Most of those who hate OOP hold up Imperative Programming (IP) as the One True Way to write code. The key difference is the IP is function (or verb) oriented whereas OOP is object (or noun) oriented.

I’ve never really understood that active dislike. It’s just another way to organize the same code you’d write anyway.

Continue reading →

The Software Industry

11 Saturday Aug 2018

Posted by Wyrd Smythe in Opinion

≈ Leave a comment

Tags

computer programming, computer science, program, software, software design, software development, software industry, xkcd

xkcd #2030 by Randall MonroeI cracked up when I saw this recent xkcd cartoon. Randall Munroe rarely fails to deliver, but this one especially caught my eye. It’s painfully on-point and quite dismaying on at least two points:

Firstly, that it should still be this bad given all the time, money, and attention, it has received is reason alone for dismay. Part of the problem here may be that we haven’t admitted how hard software is to get right.

But, secondly, software is central to our lives now — far more than airplanes, and even more likely than elevator rides. You might ride an elevator, at most, a dozen times a day, but software enters your life more times than that.

Especially if you use a mobile computing device!

Continue reading →

Iteration versus Recursion

19 Monday Dec 2016

Posted by Wyrd Smythe in CS101

≈ Leave a comment

Tags

computer language, computer languages, computer programming, computer science, GOTO statement, iteration, language design, loop statements, programming language, recursion

When it comes to what makes a computer (or any other) language a programming language, there are three characteristics usually required:

  1. Saving state (variables)
  2. Selecting a code path (if-then)
  3. Iteration or recursion (or equivalent)

This post is just a brief note (for a friend) about the third item and why it allows three distinct options.

Continue reading →

What is a “Programming” Language?

06 Saturday Aug 2016

Posted by Wyrd Smythe in CS101

≈ Leave a comment

Tags

computer language, computer languages, computer programming, computer science, language design, programming language, Turing complete

Back in the post HTML is not a programming language! I brought up the three properties required by a programming language. A discussion recently got me thinking about it again. This post is just some notes on those thoughts…

Continue reading →

State Engines, part 3

25 Wednesday Nov 2015

Posted by Wyrd Smythe in CS101

≈ Leave a comment

Tags

computer, computer code, computer programming, computer science, Python code, state engine, state table

In the first two parts of this series I’ve introduced state engines and taken apart a specific instance of an engine. Now it’s time to tie together the design idea with approaches to building a variety of such engines.

Because the programming logic is in the state table, the engine can be fairly generic. That means it’s possible to create a state engine framework you can reuse for a variety of applications.

Continue reading →

State Engines, part 2

11 Wednesday Nov 2015

Posted by Wyrd Smythe in CS101

≈ Leave a comment

Tags

computer, computer code, computer programming, computer science, Python code, state engine, state table

Last time I introduced state engines and state tables. I showed parts of a simple implementation of one in Python. It parsed the language introduced in Little Programming Languages. This post continues that, so be sure you’ve read that first article.

I got as far as the state table implementing the process, and that’s where this post picks up. I’ll also get into the SourceReader class that does the heavy lifting.

Continue reading →

State Engines, part 1

08 Sunday Nov 2015

Posted by Wyrd Smythe in CS101

≈ Leave a comment

Tags

computer, computer code, computer programming, computer science, state engine, state table

At one point in my career, the state engine (SE) was one of my favorite AWK hammers. At the time much of the work involved text processing or, in some cases, serial byte processing (which is not quite the same thing). That sort of thing is right in the wheelhouse for a state engine.

They are a very useful tool and an important part of any programmer’s toolkit.

Continue reading →

Computer programming is hard!

16 Monday Jun 2014

Posted by Wyrd Smythe in CS101, Opinion

≈ 4 Comments

Tags

computer programmer, computer programming, computer science, software, software design, software development

Computer Programming is hard! It’s at least as hard as what commercial architects do, and I will argue that it’s as intellectually difficult as what doctors and lawyers do.

Many people think it’s easy, because they know some nine-year-old who “programs,” but there’s a difference between fooling around with the computer and building good software applications.

Continue reading →

Data, Text and Strings (oh, my!)

15 Tuesday Apr 2014

Posted by Wyrd Smythe in Opinion

≈ 2 Comments

Tags

computer languages, computer programming, computer science, data, data type, data types, strings, text, text file

The Strings and Text are not the same post on Musing Mortoray discusses the difference between “text” and “strings” and got me thinking. Rather than weigh down his (or her) comment section with a very long comment, I thought I’d go on a bit about it here.

I agree totally with the basic premise: that “text” and “strings” are different beasts. I also agree that text-handling depends on the text. There might be some difference in how we define text and string, and thinking about how I define them turned up a lot of thoughts on the matter. This isn’t intended as an opposition post (except on one point with regard to HTML). What follows is just one programmer’s opinion.

Continue reading →

The Universal Answer

10 Monday Mar 2014

Posted by Wyrd Smythe in Opinion

≈ Leave a comment

Tags

computer programmer, computer programmers, computer programming, computer science, it depends, software design, The Universal Answer, Universal Answer

At some point it strikes you. For some it  happens early in Computer Science class after hearing a professor say it for the umpteenth time. For others it happens when hearing it come from their own mouths for the umpteenth time. The Universal Answer to any (and all) computer (science) question(s).

“It depends.”

Continue reading →

Follow The Hard-Core Coder on WordPress.com

The Posts

  • Thinking Ahead
  • Brian Kernighan: Successful Language Design
  • My Python App Framework
  • Multiplication Visualized
  • Square Root of 2
  • Life With Class
  • John Conway’s Life
  • Python Decorators, part 2
  • Python Decorators, part 1
  • Function Currying

The Topics

  • Blog (4)
  • CS101 (29)
  • Fun (22)
  • Interesting (1)
  • Opinion (12)
  • Stories (12)
  • Uncategorized (1)

The Month

April 2021
M T W T F S S
 1234
567891011
12131415161718
19202122232425
2627282930  
« Feb    

The Past

It’s me!

Wyrd Smythe

Wyrd Smythe

The canonical fool on the hill watching the sunset and the rotation of the planet and thinking what he imagines are large thoughts.

View Full Profile →

The Main Blog

Visit Logos con carne

Lots of wyrds... with meat!

Posts

RSS Feed

Comments

RSS Feed

Enter your email address to follow The Hard-Core Coder and get email when there is a new post.

Blog at WordPress.com.

Cancel

You must be logged in to post a comment.

Loading Comments...
Comment
    ×