Java Development on Mac OS X

Total Page:16

File Type:pdf, Size:1020Kb

Java Development on Mac OS X Java Development on Mac OS X 1 Scenario To develop an open source, graphical database front-end for Mac OS X using Java 2 Main Soft Goal To select a powerful, easy to use and to learn, free IDE tool to improve our productivity 3 Minimal Requirements ‣ Support the Java 2 SE platform ‣ Run on Mac OS X Tiger ‣ Run on Intel-based Macs ‣ English user interface and documentation ‣ Free and generally available 4 Evaluation Criteria • Interface Builder • Code Formatting • Version Control • Code Completion • Debugging • Code Generation • Unit Testing • Code Refactoring • Documentation • Package Mgt. 5 Borland Turbo Pascal & Microsoft QuickBASIC 6 Eclipse & Xcode 7 Eclipse “An open source, platform-independent, development platform comprised of extensible frameworks, tools and runtimes for building, deploying and managing software across its entire lifecycle.” Much more than a Java IDE 8 Xcode “All the tools you need to create, debug, and optimize your application: a graphical workbench with integrated syntax- highlighting text editor, a debugger, and the powerful GCC compiler.” The ease of Mac OS, the power of UNIX 9 Side-by-Side 10 Eclipse Xcode Developer Community Apple, Inc. License Open Proprietary Price Free (as in Speech) Free (as in Beer) Mac OS X, Linux, Platforms Mac OS X Solaris, Windows... Main Language Java Objective-C Other Supported C, C++, Perl, PHP, Java, C, C++, Languages Python, Ruby... AppleScript 11 Eclipse Xcode Fulfill Minimal Requirements ✔ Yes ✔ Yes Interface Builder ✔ Yes * ✔ Yes Version Control CVS, SVN * CVS, SVN, Perforce Debugger ✔ Yes ✔ Yes Unit Testing ✔ Yes ✔ Yes Eats Its Own Dog Food ✔ Yes ✔ Yes * via plug-in 12 The Good The Bad The Ugly 13 Sample Simple Interface Xcode: Interface Builder Eclipse: Visual Editor 14 Code Folding 15 Split View 16 Code Formatting Profiles 17 Method Navigator 18 Warnings & Errors 19 The Bad 20 Platform-independence Write once Debug everywhere 21 The Ugly 22 Spell Checking 23 Conclusions and Recommendation 24 No single tool is perfect One is more integrated with the operating system The other offers better support for the language 25 Which one is most powerful, easy to use and to learn? Which one would improve our productivity the most? 26 ? 27 Eclipse is a better tool for doing Java programming in general It really eclipses Xcode 28 But... 29 Xcode Interface Builder is much better than Eclipse Visual Editor (way better...) 30 So... 31 Our recommendation: Use Xcode Interface Builder to sketch the user interface Do all other development tasks using Eclipse 32 References http://java.sun.com Java http://developer.apple.com/java http://www.apple.com/macosx Mac OS X http://developer.apple.com/macosx http://www.apple.com/macosx/features/xcode Xcode http://developer.apple.com/tools/xcode http://www.eclipse.org Eclipse http://developer.apple.com/tools/eclipse.html Borland Turbo Pascal http://dn.codegear.com/museum Microsoft QuickBASIC http://support.microsoft.com/kb/q39730 33 Questions 34 Thank you for not having questions 35.
Recommended publications
  • Preview Objective-C Tutorial (PDF Version)
    Objective-C Objective-C About the Tutorial Objective-C is a general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the C programming language. This is the main programming language used by Apple for the OS X and iOS operating systems and their respective APIs, Cocoa and Cocoa Touch. This reference will take you through simple and practical approach while learning Objective-C Programming language. Audience This reference has been prepared for the beginners to help them understand basic to advanced concepts related to Objective-C Programming languages. Prerequisites Before you start doing practice with various types of examples given in this reference, I'm making an assumption that you are already aware about what is a computer program, and what is a computer programming language? Copyright & Disclaimer © Copyright 2015 by Tutorials Point (I) Pvt. Ltd. All the content and graphics published in this e-book are the property of Tutorials Point (I) Pvt. Ltd. The user of this e-book can retain a copy for future reference but commercial use of this data is not allowed. Distribution or republishing any content or a part of the content of this e-book in any manner is also not allowed without written consent of the publisher. We strive to update the contents of our website and tutorials as timely and as precisely as possible, however, the contents may contain inaccuracies or errors. Tutorials Point (I) Pvt. Ltd. provides no guarantee regarding the accuracy, timeliness or completeness of our website or its contents including this tutorial. If you discover any errors on our website or in this tutorial, please notify us at [email protected] ii Objective-C Table of Contents About the Tutorial ..................................................................................................................................
    [Show full text]
  • User Interface Software Tools
    User Interface Software Tools Brad A. Myers August 1994 CMU-CS-94-182 School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 Also appears as Human-Computer Interaction Institute Technical Report CMU-HCII-94-107 This report supersedes CMU-CS-92-114 from February, 1992, published as: Brad A. Myers. ‘‘State of the Art in User Interface Software Tools,’’ Advances in Human- Computer Interaction, Volume 4. Edited by H. Rex Hartson and Deborah Hix. Norwood, NJ: Ablex Publishing, 1993. pp. 110-150. Abstract Almost as long as there have been user interfaces, there have been special software systems and tools to help design and implement the user interface software. Many of these tools have demonstrated significant productivity gains for programmers, and have become important commercial products. Others have proven less successful at supporting the kinds of user interfaces people want to build. This article discusses the different kinds of user interface software tools, and investigates why some approaches have worked and others have not. Many examples of commercial and research systems are included. Finally, current research directions and open issues in the field are discussed. This research was sponsored by NCCOSC under Contract No. N66001-94-C-6037, ARPA Order No. B326. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official policies, either expressed or implied, of NCCOSC or the U.S. Government. CR CATEGORIES AND SUBJECT DESCRIPTORS: D.2.2 [Software Engineering]: Tools and Techniques-User Interfaces; H.1.2 [Models and Principles]: User/Machine Systems-Human Factors; H.5.2 [Information Interfaces and Presentation]: User Interfaces-User Interface Management Systems; I.2.2 [Artificial Intelligence]: Automatic Programming-Program Synthesis; ADDITIONAL KEYWORDS AND PHRASES: User Interface Software, Toolkits, Interface Builders, User Interface Development Environments.
    [Show full text]
  • Refactoring of Acceptance Tests in Visual Studio
    Refactoring of Acceptance Tests in Visual Studio Denis Elbert Diplomarbeit Studiengang Informatik (Technik) Fakultät für Informatik Hochschule Mannheim Autor: Denis Elbert Matrikelnummer: 510243 Zeitraum: 16.11.2009 – 16.03.2010 Erstgutachterin: Prof. Dr. Astrid Schmücker-Schend Zweitgutachterin Prof. Dr. Miriam Föller-Nord Praktischer Teil angefertigt bei: Prof. Dr. Frank Maurer Agile Software Engineering Group University of Calgary Department of Computer Science 2500 University Dr NW Calgary, Alberta T2N 1N4 Canada Refactoring of Acceptance Tests in Visual Studio STATUTORY DECLARATION (GERMAN) Ich versichere, dass ich die vorliegende Arbeit selbstständig und ohne Benutzung anderer als der angegebenen Hilfsmittel angefertigt habe. Alle Stellen, die wörtlich oder sinngemäß aus veröffentlichten und nicht veröffentlichten Schriften entnommen wurden, sind als solche kenntlich gemacht. Die Arbeit hat in dieser oder ähnlicher Form keiner anderen Prüfungsbehörde vorgelegen. Mannheim, 16.03.2010 ________________________ Unterschrift I Refactoring of Acceptance Tests in Visual Studio ABSTRACT Executable Acceptance Test Driven Development (EATDD) is an extension of Test Driven Development (TDD). TDD requires that unit tests are written before any code. EATDD pushes this TDD paradigm to the customer level by using Acceptance Tests to specify the requirements and features of a system. The Acceptance Tests are mapped to a Fixture that permits the automated execution of the tests. With ongoing development the requirements of the system can change. Thus, the Acceptance Tests must be adjusted in order to reflect the new requirements. Since the tests and the corresponding Fixtures must remain consistent, the manual modification of these tests is time consuming and error-prone. Hence comes the need for Acceptance Test refactoring.
    [Show full text]
  • An Introduction to Qt 4
    AnAn IntroductionIntroduction toto QtQt 44 Jason Trent [email protected] OOuutltliinnee . Why Trolltech? . Why Qt? . Qt 4 Widgets, Datatypes, and Structures . Qt Designer . qmake . Qt without C++ . Demo WWhhyy TTrroolllltetecchh?? .. QQtt aanndd QQttooppiiaa CCoorree aarree OOppeenn SSoouurrccee .. SSuuppppoorrtteedd bbyy mmuullttii--mmiilllliioonn ddoollllaarr ccoommppaannyy WWhhyy QQt?t? .. MMuullttii--ppllaattffoorrmm – No “virtual machines” or emulation layers – Native compilation for Windows, X11, and Mac • Utilizes core OS technologies (Core, Aero, …) – Extensions - ActiveQt, Motif Migration WWhhyy QQt?t? Over 400 C++ Classes . Not just a GUI toolkit – File handling – Networking – Process handling – Threading – Database access – Event loop processing – XML processing – OpenGL integration – and beyond WWhhyy QQt?t? .. IInntteerrnnaattiioonnaalliizzaattiioonn – Built in support for Unicode and Translation • Language and font aware layouts • Bidirectional font support • Mixed-international interface .. SSeeee QQtt LLiinngguuiisstt ffoorr mmoorree WWhhyy QQt?t? .. NNoott jjuusstt mmuuttllii--ppllaattiiffoorrmm,, mmuullttii--aarrcchhiitteeccttuurree .. QQttooppiiaa CCoorree 44 SSeerriieess – Support for embedded devices • Cell phones, PDAs, etc… – Supports Qt4 widgets with little to no code change QQWWiiddggeett TThhee mmeeeekk mmaayy iinnhheerriitt tthhee eeaarrtthh…… ……bbuutt tthhee eeaarrtthh sshhaallll iinnhheerriitt QQWWiiddggeett QWidget QQtt 44 WWiiddggeetsts .. IInnhheerriitt tthhee aallll--ppoowweerrffuull QQWWiiddggeett .. IInncclluuddee::
    [Show full text]
  • “A Magnetzed Needle and a Steady Hand”
    “A Magne)zed Needle and a Steady Hand” Alternaves in the modern world of Integrated Development Environments Jennifer Wood CSCI 5828 Spring 2012 Real Programmers hp://xkcd.com/378/ For the rest of us • Modern Integrated Development Environments (IDE) – A one-stop shop with mul)ple features that can be easily accessed by the developer (without switching modes or ac)vang other u)li)es) to ease the task of creang soYware – A mul)tude of IDEs exist for each programming language (Java, C++, Python, etc.) and each plaorm (desktops, cell phones, web-based, etc.) – Some IDEs can handle mul)ple programming languages, but most are based in just one – There are many good free IDEs out there, but you can also pay for func)onality from $ to $$$$ – IDEs are like opinions, everyone has one and everyone thinks everyone else's s)nks Why are IDEs a good thing? • They aack many of the sources of accidental difficul)es in soYware development by having: – Real-)me protec)on from fault generang typos and bad syntax – High levels of abstrac)on to keep developers from being forced to redevelop basic (and not so basic) classes and structures for every project – IDE increases the power of many development tools by merging them into one that provides “integrated libraries, unified file formats, and pipes and filters. As a result, conceptual structures that in principle could always call, feed, and use one another can indeed easily do so in prac)ce.” (Brooks, 1987). • A core focus of IDE developers is con)nuous improvement in transparency to minimize searching for func)ons
    [Show full text]
  • Programming Java for OS X
    Programming Java for OS X hat’s so different about Java on a Mac? Pure Java applica- tions run on any operating system that supports Java. W Popular Java tools run on OS X. From the developer’s point of view, Java is Java, no matter where it runs. Users do not agree. To an OS X user, pure Java applications that ignore the feel and features of OS X are less desirable, meaning the customers will take their money elsewhere. Fewer sales translates into unhappy managers and all the awkwardness that follows. In this book, I show how to build GUIs that feel and behave like OS X users expect them to behave. I explain development tools and libraries found on the Mac. I explore bundling of Java applications for deployment on OS X. I also discuss interfacing Java with other languages commonly used on the Mac. This chapter is about the background and basics of Java develop- ment on OS X. I explain the history of Java development. I show you around Apple’s developer Web site. Finally, I go over the IDEs commonly used for Java development on the Mac. In This Chapter Reviewing Apple Java History Exploring the history of Apple embraced Java technologies long before the first version of Java on Apple computers OS X graced a blue and white Mac tower. Refugees from the old Installing developer tan Macs of the 1990s may vaguely remember using what was tools on OS X called the MRJ when their PC counterparts were busy using JVMs. Looking at the MRJ stands for Mac OS Runtime for Java.
    [Show full text]
  • User Interface Software Technology BRAD A
    User Interface Software Technology BRAD A. MYERS Human Computer Interaction Institute, Carnegie Mellon University ^[email protected]& The user interface of an application is the application to draw pictures on the the part that the person using the soft- screen and get input from the user, and ware sees and interacts with. The part the window manager allows the end of the software that makes the user user to move windows around, and is interface work is often large, complex, responsible for displaying the title lines, and difficult to implement, debug, and borders, and icons around the windows. modify. Today direct manipulation in- However, many people and systems use terfaces (also called graphical user in- the name “window manager” to refer to terface (GUI’s)) are almost universal, both layers, since systems such as the and the part of the software that han- Macintosh and Microsoft Windows do dles the user interface generally takes a not separate them. significant percentage of the total sys- On top of the windowing system is the tem design and implementation time toolkit, which contains many commonly [Myers and Rosson 1992]. Therefore, used widgets such as menus, buttons, specialized software tools have been cre- scroll bars, and text-input fields. Tool- ated to ease the programmer’s burden, kits usually connect to application pro- and today virtually all new user inter- grams through call-back procedures de- face software uses tools that make the fined by the application programmer implementation easier. Many of these that are used when a widget is operated tools have demonstrated significant pro- by the end user.
    [Show full text]
  • LAZARUS FREE PASCAL Développement Rapide
    LAZARUS FREE PASCAL Développement rapide Matthieu GIROUX Programmation Livre de coaching créatif par les solutions ISBN 9791092732214 et 9782953125177 Éditions LIBERLOG Éditeur n° 978-2-9531251 Droits d'auteur RENNES 2009 Dépôt Légal RENNES 2010 Sommaire A) À lire................................................................................................................5 B) LAZARUS FREE PASCAL.............................................................................9 C) Programmer facilement..................................................................................25 D) Le langage PASCAL......................................................................................44 E) Calculs et types complexes.............................................................................60 F) Les boucles.....................................................................................................74 G) Créer ses propres types..................................................................................81 H) Programmation procédurale avancée.............................................................95 I) Gérer les erreurs............................................................................................105 J) Ma première application................................................................................115 K) Bien développer...........................................................................................123 L) L'Objet..........................................................................................................129
    [Show full text]
  • B-Human 2018
    Team Report and Code Release 2018 Thomas R¨ofer1;2, Tim Laue2, Arne Hasselbring2, Jannik Heyen2, Bernd Poppinga2, Philip Reichenberg2, Enno R¨ohrig2, Felix Thielke2 1 Deutsches Forschungszentrum f¨urK¨unstliche Intelligenz, Enrique-Schmidt-Str. 5, 28359 Bremen, Germany 2 Universit¨atBremen, Fachbereich 3, Postfach 330440, 28334 Bremen, Germany Revision: November 14, 2018 Contents 1 Introduction 4 1.1 About Us........................................4 1.2 About the Document..................................4 2 Getting Started6 2.1 Download........................................6 2.2 Components and Configurations...........................7 2.3 Building the Code...................................8 2.3.1 Project Generation...............................8 2.3.2 Visual Studio on Windows...........................8 2.3.3 Xcode on macOS................................9 2.3.4 Linux...................................... 10 2.4 Setting Up the NAO.................................. 11 2.4.1 Requirements.................................. 11 2.4.2 Installing the Operating System....................... 12 2.4.3 Creating Robot Configuration Files for a NAO............... 12 2.4.4 Managing Wireless Configurations...................... 13 2.4.5 Installing the Robot.............................. 13 2.5 Copying the Compiled Code.............................. 13 2.6 Working with the NAO................................ 14 2.7 Starting SimRobot................................... 15 2.8 Calibrating the Robots................................. 16 2.8.1 Overall Physical
    [Show full text]
  • Eclipse Project Briefing Materials
    [________________________] Eclipse project briefing materials. Copyright (c) 2002, 2003 IBM Corporation and others. All rights reserved. This content is made available to you by Eclipse.org under the terms and conditions of the Common Public License Version 1.0 ("CPL"), a copy of which is available at http://www.eclipse.org/legal/cpl-v10.html The most up-to-date briefing materials on the Eclipse project are found on the eclipse.org website at http://eclipse.org/eclipse/ 200303331 1 EclipseEclipse ProjectProject 200303331 3 Eclipse Project Aims ■ Provide open platform for application development tools – Run on a wide range of operating systems – GUI and non-GUI ■ Language-neutral – Permit unrestricted content types – HTML, Java, C, JSP, EJB, XML, GIF, … ■ Facilitate seamless tool integration – At UI and deeper – Add new tools to existing installed products ■ Attract community of tool developers – Including independent software vendors (ISVs) – Capitalize on popularity of Java for writing tools 200303331 4 Eclipse Overview Another Eclipse Platform Tool Java Workbench Help Development Tools JFace (JDT) SWT Team Your Tool Plug-in Workspace Development Debug Environment (PDE) Their Platform Runtime Tool Eclipse Project 200303331 5 Eclipse Origins ■ Eclipse created by OTI and IBM teams responsible for IDE products – IBM VisualAge/Smalltalk (Smalltalk IDE) – IBM VisualAge/Java (Java IDE) – IBM VisualAge/Micro Edition (Java IDE) ■ Initially staffed with 40 full-time developers ■ Geographically dispersed development teams – OTI Ottawa, OTI Minneapolis,
    [Show full text]
  • Language Interoperability in Control Network Programming
    International Journal of Science and Engineering Investigations vol. 7, issue 78, July 2018 ISSN: 2251-8843 Language Interoperability in Control Network Programming Kostadin Kratchanov1, Efe Ergün2 1,2Yaşar University, Izmir, Turkey ([email protected], [email protected]) Abstract - Control Network Programming (CNP) is a There is a number of reasons why language interoperability programming paradigm which is being described with the is highly desirable. For example, if a programmer has to maxim “Primitives + Control Network = Control Network implement a specific feature that has been already implemented program”. It is a type of graphic programming. The Control in another language the corresponding program component can Network is a recursive system of graphs; it can be a purely simply be reused. Some languages are especially fit and descriptive specification of the problem being solved. Clearly, effective in implementing specific features and often have ‘drawing’ the control network does not include any emerged to target particular problem domains. Rich third-party programming. The Primitives are elementary, easily packages for certain languages are available. Also, every understandable and clearly specified actions. Ultimately, they programmer usually has a preferred language in which their have to be programmed. Historically, they are usually coded in expertise and efficiency is better. There are hundreds of Free Pascal. The actual code of the primitives has never been programming languages used and constantly being developed considered important. The essence of an “algorithm” is thus making language interoperability a necessity. represented by its control network. CNP was always meant to Programmers with experience and preferences in different be an easy and fast approach for software application programming languages can easier team up for solving development that actually involves very little real complex tasks.
    [Show full text]
  • Improving Tools for Javascript Programmers
    Improving Tools for JavaScript Programmers (Position Paper) Esben Andreasen Asger Feldthaus Simon Holm Jensen Aarhus University Aarhus University Aarhus University [email protected] [email protected] [email protected] Casper S. Jensen Peter A. Jonsson Magnus Madsen Aarhus University Aarhus University Aarhus University [email protected] [email protected] [email protected] Anders Møller Aarhus University [email protected] ABSTRACT 2. FINDING ERRORS WITH We present an overview of three research projects that all DATAFLOW ANALYSIS aim to provide better tools for JavaScript web application 1 The TAJS analysis tool infers an abstract state for each programmers : TAJS, which infers static type information program point in a given JavaScript web application. Such for JavaScript applications using dataflow analysis; JSRefac- an abstract state soundly models the possible states that tor, which enables sound code refactorings; and Artemis, may appear at runtime and can be used for detecting type- which provides high-coverage automated testing. related errors and dead code. These errors often arise from wrong function parameters, misunderstandings of the run- time type coercion rules, or simple typos that can be tedious to find using testing. 1. JAVASCRIPT PROGRAMMERS NEED We have approached the development of TAJS in stages. BETTER TOOLS First, our focus has been on the abstract domain and dataflow JavaScript contains many dynamic features that allegedly constraints that are required for a sound and reasonably ease the task of programming modern web applications. Most precise modeling of the basic operations of the JavaScript importantly, it has a flexible notion of objects: properties are language itself and the native objects that are specified in added dynamically, the names of the properties are dynam- the ECMAScript standard [3].
    [Show full text]