Computer Science Seminar. Whats the next big thing? Ruby? Python? Neither?

Similar documents
KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

Table of Contents EVALUATION COPY

Welcome to Python! If you re the type of person who wants to know

DOWNLOAD : THE RUBY PROGRAMMING LANGUAGE

EECS 282 Information Systems Design and Programming. Atul Prakash Professor, Computer Science and Engineering University of Michigan

EECS 282 Information Systems Design and Programming. Atul Prakash Professor, Computer Science and Engineering University of Michigan

Lecture 1. Basic Ruby 1 / 61

CS 3030 Scripting Languages Syllabus

Ruby on Rails Welcome. Using the exercise files

! Broaden your language horizons! Different programming languages! Different language features and tradeoffs. ! Study how languages are implemented

Hello, and welcome to another episode of. Getting the Most Out of IBM U2. This is Kenny Brunel, and

The current topic: Python. Announcements. Python. Python

CSC 326H1F, Fall Programming Languages. What languages do you know? Instructor: Ali Juma. A survey of counted loops: FORTRAN

Introduction to Programming System Design CSCI 455x (4 Units)

Lecture 1. basic Python programs, defining functions

Class Note #02. [Overall Information] [During the Lecture]

CS 241 Data Organization using C

Python for Analytics. Python Fundamentals RSI Chapters 1 and 2

CSE 142. Lecture 1 Course Introduction; Basic Java. Portions Copyright 2008 by Pearson Education

Course Syllabus. Course Information

Seminar in Programming Languages

CIS192: Python Programming

At the Forge. What Is Ruby? Getting Started with Ruby. Reuven M. Lerner. Abstract

Syllabus INFO-GB Design and Development of Web and Mobile Applications (Especially for Start Ups)

Contractors Guide to Search Engine Optimization

TTh 9.25 AM AM Strain 322

Cleveland State University

! Broaden your language horizons. ! Study how languages are implemented. ! Study how languages are described / specified

IT 220 Course Notes. Don Colton Brigham Young University Hawaii

San José State University Department of Computer Science CS-174, Server-side Web Programming, Section 2, Spring 2018

Computer Science II Lecture 1 Introduction and Background

San José State University Computer Science Department CS157A: Introduction to Database Management Systems Sections 5 and 6, Fall 2015

CS240: Programming in C

CSE 336. Introduction to Programming. for Electronic Commerce. Why You Need CSE336

Course and Contact Information. Course Description. Course Objectives

CS 3030 Scripting Languages Syllabus

Ruby. Mooly Sagiv. Most slides taken from Dan Grossman

San Jose State University - Department of Computer Science

San Jose State University College of Science Department of Computer Science CS185C, Introduction to NoSQL databases, Spring 2017

Course and Contact Information. Course Description. Course Objectives

CS252 Advanced Programming Language Principles. Prof. Tom Austin San José State University Fall 2013

The Linux Command Line: A Complete Introduction, 1 st ed., by William E. Shotts, Jr., No Starch Press, 2012.

61A LECTURE 1 FUNCTIONS, VALUES. Steven Tang and Eric Tzeng June 24, 2013

CS/SE 153 Concepts of Compiler Design

CSC209H Lecture 1. Dan Zingaro. January 7, 2015

Object Oriented Concepts and Programming (CSC244) By Dr. Tabbasum Naz

San José State University College of Science / Department of Computer Science Introduction to Database Management Systems, CS157A-3-4, Fall 2017

CMPE/SE 135 Object-Oriented Analysis and Design

Definition: A data structure is a way of organizing data in a computer so that it can be used efficiently.

Programming 1. Outline (111) Lecture 0. Important Information. Lecture Protocol. Subject Overview. General Overview.

San Jose State University College of Science Department of Computer Science CS185C, NoSQL Database Systems, Section 1, Spring 2018

PYTHON PROGRAMMING FOR BEGINNERS: AN INTRODUCTION TO THE PYTHON COMPUTER LANGUAGE AND COMPUTER PROGRAMMING BY JASON CANNON

CMSC 330: Organization of Programming Languages. Administrivia

Washington State University School of EECS Computer Science Course Assessment Report

Hi! My name is Sorin. Programming Languages. Why study PL? (discussion) Why study PL? Course Goals. CSE 130 : Fall 2013

CS1110 Lab 1 (Jan 27-28, 2015)

Programming Languages

Introduction to Programming

CS 240 Fall 2015 Section 004. Alvin Chao, Professor

CSC209. Software Tools and Systems Programming.

Lecture 1. Introduction to course, Welcome to Engineering, What is Programming and Why is this the first thing being covered in Engineering?

CMPE 152 Compiler Design

Introduction to: Computers & Programming: Review prior to 1 st Midterm

There is no required text book for this course. Online reading material, videos, and PowerPoint slides etc. will be provided via Canvas.

Python Workshop. January 18, Chaitanya Talnikar. Saket Choudhary

Syllabus for HPE 021 Advanced Golf and Fitness 1 Credit Hour Fall 2014

CS 3230 Object Oriented UI Development With Java Syllabus

Gleim CMA System for Success 15 th Edition, 1 st Printing Updates

INTRODUCTION. In this guide, I m going to walk you through the most effective strategies for growing an list in 2016.

CMPE 152 Compiler Design

CS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 2: SEP. 8TH INSTRUCTOR: JIAYIN WANG

CSCI455: Introduction to Programming System Design

Frequently asked questions on the Exam Period

Hi! My name is Sorin. Programming Languages. Why study PL? (discussion) Why study PL? Course Goals. CSE : Fall 2017

Computer Science Technology Department

Basics of Java Programming CS129 LTPC:

CSI Lab 02. Tuesday, January 21st

GUARANTEED DIRECT REFERRALS

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1, 2, and 3, Spring 2018

Lecture 3. Functions & Modules

CS 240 Fall Mike Lam, Professor. Just-for-fun survey:

Installation Download and installation instructions can be found at

Lecture 1. Course Overview, Python Basics

Course: Honors AP Computer Science Instructor: Mr. Jason A. Townsend

STUDY GUIDE: MASTER S DEGREE IN ECONOMIC POLICY

San José State University College of Science/Department of Computer Science CS 152, Programming Language Paradigms, Section 03/04, Fall, 2018

Computers and programming languages introduction

Python - a Dynamic Programming Language. Guido van Rossum May 31, 2007

A WEB-BASED APPLICATION FOR THE MANAGEMENT OF SEMINAR ASSIGNMENTS

Course Administration

Welcome to CS61A! Last modified: Thu Jan 23 03:58: CS61A: Lecture #1 1

today what is this course about? what is this course about? Welcome to CSC309! Programming on the Web APRIL 05

Overview. Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Performance, memory

Announcements. 1. Forms to return today after class:

CSE 341: Programming Languages

COSC 115A: Introduction to Web Authoring Fall 2014

Programming (Econometrics)

Certification Solutions. Program Catalogue

How-To Guides Published on bspace Help (

Transcription:

Computer Science Seminar Whats the next big thing? Ruby? Python? Neither?

Introduction Seminar Style course unlike many computer science courses discussion important, encouraged and part of your grade each student will be responsible for presenting one (or more) of the topics through out the semester. There is a list of topic spaces to sign up on my office door right now. 26 class meetings: at current enrollments, 18 of the presentations will be made by students (with some doubling up) I'll be doing the first couple of weeks.

Grading (Assessment) Since this is a seminar course grading distribution is a little different Programming projects: 35% Papers: 35% Presentation: 10% Exam: 10% Everything else (mostly participation and demonstrating that you understand the material regularly): 10%

More Administravia No room for slackers I don't take attendance but: Joining the conversation matters. You may be called on, have a reasonable answer In my classes doing well is highly correlated with showing up and paying attention If you show up and spend the time checking scores or surfing gaming wikis, you are not likely to do well. when someone asks if there is anything to do to bring their grade up, my first answer is turn in all the assignments. Now lets look at the syllabus to make sure we are all on the same page.

So why this seminar For the last 10 years, Java has been a/the major programming language in combined education/industry. lots its no good for, but largest share of many languages C and C++ round out the top three large application development languages. Each of these others had their own time of dominance. perl, php and visual basic also had their time as specialty languages. now big application languages seem to be in decline

So what's next Are the big application languages really in decline? or is is a brief outlier? If so, what takes their place second tier specialty languages also seem to be declining a couple of possibilities everything becomes sort of specialty: lots of languages, none dominant. a new language rises to become dominant We will look at two promising candidates one more possible 'D' D is outside the scope of this course

The contenders Python and Ruby share several similarities Both dynamically typed both interpreted both include garbage collection both have a difference syntax from C-like languages no more curly braces to annoy newer programmers both can be full fledges OO languages or used as lightweight scripting languages.

Why Python Why might python be a big thing? http://www.tiobe.com/tpci.htm tiobe/tcpi programming index shows python to have reached high single digits after years of steady growth Starting to show up in computer science education conferences as language to teach first programming course used as support language in industry NASA to civilization IV game wide specialized use of a general purpose programming language

Why Python II Jobs out there now that want python as main skill http://www.python.org/community/jobs/ Python, like Java and others has libraries for everything web, gui, gaming, networking etc.

Why Ruby? Spent 10 years in obscurity before becoming overnight sensation well in 1.5-2 years has nearly doubled its share. tiobe/tcpi list shows it in low double digits. has moved up fast in last year or so. Started to get some of the sort of buzz that Java did 10 years or so ago. lots of buzz on forums lots of books by excited people not nearly as widely used european academics at upper level classes no heavy industry presence much smaller set of libraries. one ace in the hole: Rails

Ruby on Rails Rails is a ruby framework for slapping together a web-based database application. supposed to be fast, scalable and easy data bases on web are big and growing field like what?

Where did Python come from Guido Van Rossum worked on a language called ABC in early mid- 80s 1989: Guido starts work on Python during the Christmas holidays to create a better way for system administration than C programs or Bourne shell scripts. 1991 announces python via usenet and makes it available to the world. still Benevolent dictator for life

Where did ruby come from Yukihiro Matsumoto ("Matz") 1993, February 24: Yukihiro Matsumoto starts to work on Ruby. 1993, Summer: First "Hello, world!" program works. 1995, December: First release 0.95. 1996, December: 1.0 is released. 1999: Supposedly overtakes Python in Japan. 2000: The first official newsgroup. 2004 July: ruby on rails released

Ruby fans: very passionate Notice when reading much of the Ruby literature fans are passionate. similar to Mac fans Saturn owners circa 1994 lisp fans for 30+ years utterly convinced of their products superiority more emotional than intellectual many similarities to lisp no parentheses though

How are they doing today You've seen the Tiobe/tcpi list Sourceforge As of July shows 528 ruby projects in various stages shows 3450 python projects again in all stages sourceforge and its place vs. commercial software Python by far more widely used, but increase in share has slowed Ruby very obscure till a year or so ago outside of European Universities now seeing big upswing.

Running Python at BSC python has one executable from command line python with no args will bring up interactive prompt with an argument will execute

Running Ruby at BSC ruby has two executables irb to run interactively or ruby to run ruby files as programs